【问题标题】:Filter File extension With FileUpload使用 FileUpload 过滤文件扩展名
【发布时间】:2012-01-23 18:38:44
【问题描述】:

我正在编写一个涉及使用FileUpload 控件的asp.net 网络应用程序。

目前,这个特定的 FileUpload 控件只需要 .zip 或 .gz 文件类型。如果上传的文件类型不正确,则会向用户显示一条错误消息。此功能已实现。

我要做的是过滤用户点击“浏览”时看到的可见文件类型。

您可能已经看到类似于以下内容的文件打开对话框。

我已经圈出了代表文件扩展名过滤器的区域。

这是一个很常见的功能,我希望它会内置到当前的FileUpload Control 中,但是在网上搜索了一些之后,我发现一些帖子说它不能做到。

这些帖子来自 2009 年,两年多以前。

现在,我的问题是:当前的 Asp.Net 4.0 是否支持此功能?如果不支持,您是否知道任何简单的解决方案来获得我想要的功能。

我想再次指出,我能够验证用户是否选择了支持的文件类型。我正在寻找的只是外观更改,它将在打开文件对话框中过滤掉不需要的文件类型。

【问题讨论】:

  • 这适用于桌面应用程序,但不适用于 Web 应用程序!
  • 所谓“重复”的接受答案看起来像是在进行验证,但不是过滤。
  • 我同意副本上的答案不是您要找的。​​span>

标签: c# asp.net file-upload


【解决方案1】:

你可以试试下面的代码。

<asp:FileUpload ID="UploadFile" accept="image/*" multiple="false" runat="server" BorderStyle="None" />

它适用于现代浏览器。

不要忘记使用过程背后的代码来验证扩展。

【讨论】:

    【解决方案2】:

    在文件上传控件中选择图像..

    希望对你有帮助

    asp:RegularExpressionValidator ID="rexp" runat="server" ControlToValidate="fupProduct"
         ErrorMessage="Only .gif, .jpg, .png, .tiff and .jpeg"
         ValidationExpression="(.*\.([Gg][Ii][Ff])|.*\.([Jj][Pp][Gg])|.*\.([Bb][Mm][Pp])|.*\.([pP][nN][gG])|.*\.([tT][iI][iI][fF])$)"></asp:RegularExpressionValidator
    

    【讨论】:

      【解决方案3】:

      我相信这是不可能的。在浏览器中按文件类型过滤不是由 asp.net 控制的。它是一种浏览器功能。

      这个问题已经在stackoverflow中问过了。请点击 filter the file type with the file upload control

      【讨论】:

      • 我看到了,但微软发布了他们的 .Net Framework 4.0 在提出这个问题几周后,并且在大多数答案发布之后。
      • 以下答案适用于部分浏览器:stackoverflow.com/a/23589176/12601
      【解决方案4】:

      【讨论】:

      • 好答案@Stephan。太多人忘记了这种工作是在浏览器中完成的,而不是在服务器上。
      【解决方案5】:

      您可以从 ASP.NET FileUpload 控件创建验证文件扩展名

      我相信你可以选择这个解决方案

      Validate File Extension for ASP.NET FileUpload Control

      【讨论】:

      • 在我的问题的两个地方,我已经提到我已经能够进行这种验证。这不是我要问的功能
      猜你喜欢
      • 2011-09-14
      • 2010-12-31
      • 1970-01-01
      • 1970-01-01
      • 2010-10-07
      • 2022-01-06
      • 1970-01-01
      • 2011-01-27
      • 2020-11-02
      相关资源
      最近更新 更多