我使用< input type =“file”id =“fileUpload”runat =“server”>在ASP.NET应用程序中上传文件。我想限制上传的文件类型(例如:limit为.xls或.xlsx文件扩展名)。
JavaScript或服务器端验证都可以(只要服务器端验证将在文件上传之前发生 – 可能会上传一些非常大的文件,因此任何验证都需要在上传实际文件之前进行) 。
解决方法
似乎您将有有限的选项,因为您希望检查发生在上传前。我认为你最好得到的是使用javascript来验证文件的扩展名。您可以构建有效扩展的哈希,然后查看要上传的文件的扩展是否存在于哈希中。
HTML:
- <input type="file" name="FILENAME" size="20" onchange="check_extension(this.value,"upload");"/>
- <input type="submit" id="upload" name="upload" value="Attach" disabled="disabled" />
Javascript:
- var hash = {
- 'xls' : 1,'xlsx' : 1,};
- function check_extension(filename,submitId) {
- var re = /\..+$/;
- var ext = filename.match(re);
- var submitEl = document.getElementById(submitId);
- if (hash[ext]) {
- submitEl.disabled = false;
- return true;
- } else {
- alert("Invalid filename,please select another file");
- submitEl.disabled = true;
- return false;
- }
- }