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

发布于 2024-11-06 14:52:46 字数 549 浏览 1 评论 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)$

执行以下过程:

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

2.扩展名必须仅与组匹配。

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

input type file or the file upload html control/ asp.net control value seems to change depending on browsers.

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

Chrome:
fileUpload.value gives c:\fakePath\filename

Firefox:
fileUpload.value gives filename.ext

ie:
fileUpload.value gives Full path+filename

i used a regular expression validator with validation expression as below

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

carries out below process:

  1. File name must be 3 to 28 characters

2.Extension must match the group only.

Since the value of fileUpload control is different in different browsers how do i validate it now??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一世旳自豪 2024-11-13 14:52:46

如果您只使用标准的 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>

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

<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>
以酷 2024-11-13 14:52:46

@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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文