【问题标题】:Cross browser File input validation in asp.net 2.0asp.net 2.0 中的跨浏览器文件输入验证
【发布时间】:2011-08-22 05:03:31
【问题描述】:

输入类型文件或文件上传html控件/ asp.net控件值似乎因浏览器而异。

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

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

火狐: 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.Extension 必须只匹配组。

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

【问题讨论】:

    标签: javascript asp.net validation file-upload


    【解决方案1】:

    @Fraz Sundal 无法对代码发表评论,因此发布了新帖子 @Fraz 仍然不知道为什么它在这里失败是代码 sn-p<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>

    在客户端验证表达式变成^[a-za-zA-Z0-9_\.]{3,28}\\.(pdf|txt|doc|docx|png|gif|jpeg|jpg|zip|rar)$可能是因为这个

    【讨论】:

      【解决方案2】:

      如果您只使用标准的 RegularExpressionValidator,那么它将跨浏览器本身工作。因为 RegularExpressionValidator 在您选择文件时也适用于客户端,如果文件无效,它会自动显示 ErrorMessage。

      示例代码

      <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>
      

      【讨论】:

      • 是这样吗!!。您能否提出一个简单的表格来测试上述正则表达式并在 Chrome、Safari、Firefox 中查看。提出主要原因问题是因为它不起作用
      • 此代码适用于 IE、Firefox 和 Chrome。我认为在三个主要浏览器上检查跨浏览器绰绰有余
      • 我会在更多测试后回来
      • 请尝试下面的它不起作用&lt;asp:FileUpload id="fup" runat="server" /&gt; &lt;asp:RegularExpressionValidator id="RegularExpressionValidator1" runat="server" controltovalidate="fup" enableclientscript="true" errormessage="Invalid File" text="invalid file" validationexpression="^[a-za-zA-Z0-9_\.]{3,28}\.(pdf|txt|doc|docx|png|gif|jpeg|jpg|zip|rar)$"&gt;&lt;/asp:RegularExpressionValidator&gt;事件虽然我输入有效文件sprite.png它说无效文件
      猜你喜欢
      • 2012-06-06
      • 2016-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多