Yaa*_*lis 36 javascript asp.net validation upload file
我<input type="file" id="fileUpload" runat="server">用来在ASP.NET应用程序中上传文件.我想限制上传的文件类型(例如:限制为.xls或.xlsx文件扩展名).
JavaScript或服务器端验证都可以(只要服务器端验证将在文件上传之前进行 - 可能会上传一些非常大的文件,因此需要在上载实际文件之前进行任何验证) .
小智 30
似乎您将拥有有限的选项,因为您希望在上传之前进行检查.我认为你将获得的最好的是使用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" />
Run Code Online (Sandbox Code Playgroud)
使用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;
}
}
Run Code Online (Sandbox Code Playgroud)
sha*_*esh 26
使用regularre表达式验证器非常简单.
<asp:RegularExpressionValidator
id="RegularExpressionValidator1"
runat="server"
ErrorMessage="Only zip file is allowed!"
ValidationExpression ="^.+(.zip|.ZIP)$"
ControlToValidate="FileUpload1"
> </asp:RegularExpressionValidator>
Run Code Online (Sandbox Code Playgroud)
从javascript,您应该能够在onsubmit处理程序中获取文件名.所以在你的情况下,你应该做的事情如下:
<form onsubmit="if (document.getElementById('fileUpload').value.match(/xls$/) || document.getElementById('fileUpload').value.match(/xlsx$/)) { alert ('Bad file type') ; return false; } else { return true; }">...</form>
Run Code Online (Sandbox Code Playgroud)
我同意Chris的意见,检查扩展名是不是以任何方式验证文件类型.Telerik的radUpload可能是您的最佳选择,它提供了正在上传的文件的ContentType属性,您可以将其与已知的mime类型进行比较.你应该检查:
应用/ vnd.ms-Excel中,
应用程序/ Excel中,
应用程序/ x-msexcel的
对于新的2k7格式:
应用程序/ vnd.openxmlformatsofficedocument.spreadsheetml.sheet
Telerik曾经将radUpload作为一个单独的组件出售,但现在它被包装到控件套件中,这使得它更贵一点,但到目前为止它是检查真实类型的最简单方法
| 归档时间: |
|
| 查看次数: |
138968 次 |
| 最近记录: |