javascript - asp.net 2.0 中的跨浏览器文件输入验证

标签 javascript asp.net validation file-upload

输入类型文件或文件上传 html 控件/asp.net 控件值似乎会根据浏览器而改变。

<input type="file" id="fileUpload" name="fileUpload" />

Chrome : fileUpload.value 给出 c:\fakePath\filename

火狐: fileUpload.value 给出文件名.ext

即: fileUpload.value 给出完整路径+文件名

我使用了一个正则表达式验证器,验证表达式如下

^[a-za-zA-Z0-9_\.]{3,28}\.(pdf|txt|doc|docx|png|gif|jpeg|jpg|zip|rar)$

执行以下过程:

  1. 文件名必须是 3 到 28 个字符

2.分机必须只匹配组。

由于fileUpload控件的值在不同的浏览器中是不同的,现在如何验证呢??

最佳答案

如果你只使用标准的 RegularExpressionValidator 那么它本身就可以跨浏览器工作。因为 RegularExpressionValidator 在您选择文件时也在客户端工作,所以如果文件无效,它会自动显示错误消息。

示例代码

<asp:FileUpload ID="fup" runat="server" />        
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
ControlToValidate="fup" ErrorMessage="Invalid File" 
ValidationExpression="^[a-za-zA-Z0-9_\.]{3,28}\.(pdf|txt|doc|docx|png|gif|jpeg|jpg|zip|rar)$"></asp:RegularExpressionValidator>

关于javascript - asp.net 2.0 中的跨浏览器文件输入验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5946079/

相关文章:

javascript - 如何减小 AspNet.ApplicationCookie 的大小以及其中的内容?

c# - AutoMapper:将对象集合映射到字符串集合

jquery - 在运行时将事件选项卡名称获取到隐藏字段中

c# - ASP.NET MVC 2 中的验证

jquery - HTML/Bootstrap 选项卡

javascript - 验证表

javascript变量接收函数输出不一致

Javascript Array.prototype.find 第二个参数 thisArg 不起作用

javascript - 在没有 "new"关键字 kosher 的情况下声明 Javascript 对象的方法?

javascript - Canvas 中的图像尺寸、比例错误并且变得模糊