asp.net 2.0 中的跨浏览器文件输入验证
输入类型文件或文件上传 html 控件/ asp.net 控件值似乎会根据浏览器而变化。
<input type="file" id="fileUpload" name="fileUpload" />
铬合金: fileUpload.value 给出 c:\fakePath\filename
Firefox: fileUpload.value 给出 filename.ext
即: fileUpload.value 给出完整路径+文件名
我使用了正则表达式验证器,验证表达式如下
^[a-za-zA-Z0-9_\.]{3,28}\.(pdf|txt|doc|docx|png|gif|jpeg|jpg|zip|rar)$
执行以下过程:
- 文件名必须为 3 到 28 个字符
2.扩展名必须仅与组匹配。
由于 fileUpload 控件的值在不同浏览器中不同,我现在如何验证它?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您只使用标准的 RegularExpressionValidator 那么它本身就可以跨浏览器工作。因为 RegularExpressionValidator 也在客户端工作,当您选择文件时,如果文件无效,它会自动显示错误消息。
示例代码
If you only use standard RegularExpressionValidator then it will work cross browser itself. Because RegularExpressionValidator works client side too when you select a file it automatically display the ErrorMessage if the file is invalid.
Sample Code
@Fraz Sundal 无法对代码发表评论,因此发布了新帖子
@Fraz 仍然不知道为什么它失败这里是代码片段
in客户端验证表达式变为
^[a-za-zA-Z0-9_\.]{3,28}\\.(pdf|txt|doc|docx|png|gif|jpeg|jpg|zip |rar)$
可能是因为这个@Fraz Sundal couldn't comment with the code hence the new post
@Fraz still no clue why it fails here is the code snippet
<asp:RegularExpressionValidator id="rgvFile" runat="server" font-bold="true" errormessage="Only pdf,doc,zip,jpeg,png,gif files allowed"
cssclass="rgvfile" enableclientscript="true" display="Dynamic" controltovalidate="fileUpload"
validationexpression="^[a-za-zA-Z0-9_\.]{3,28}\.(pdf|txt|doc|docx|png|gif|jpeg|jpg|zip|rar)$"
text="Only pdf, doc, zip, jpeg, png, gif files allowed" tooltip="Only certain files allowed and filename cannot contain space.Please check and retry"></asp:RegularExpressionValidator>
in client side the validation expression turns to
^[a-za-zA-Z0-9_\.]{3,28}\\.(pdf|txt|doc|docx|png|gif|jpeg|jpg|zip|rar)$
might be because of that