输入类型文件或文件上传 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)$
执行以下过程:
- 文件名必须是 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/