如何在FileUpload控件中限制文件类型

Gee*_*eth 26 c# asp.net file-upload image

是否可以允许fileupload控件只显示图像?

当我们单击"浏览"按钮时,它应该只显示图像.

Ton*_*oud 52

在2015年,webbrowsers支持输入accept属性,因此您可以这样做:

<asp:FileUpload ID="fileUploader" runat="server" accept=".png,.jpg,.jpeg,.gif" />
Run Code Online (Sandbox Code Playgroud)

  • 这仍然允许用户上传不使用其中一个扩展名的文件 (5认同)
  • @jtate该问题仅限于仅显示图像。您应该始终在服务器端验证上传(以及任何用户输入),以发现有人试图上传不需要的内容。用户可以简单地将不需要的文件的扩展名重命名为接受列表中的内容。因此,您应该将文件上传中的接受列表作为对用户的简单帮助,至少应在后端进行验证。 (2认同)

Chr*_*ann 22

我找不到解决这个问题的直接方法.

这是我使用RegularExpressionValidator的解决方法:

<asp:FileUpload ID="fuImportImage" runat="server" />
<asp:RegularExpressionValidator ID="regexValidator" runat="server"
     ControlToValidate="fuImportImage"
     ErrorMessage="Only JPEG images are allowed" 
     ValidationExpression="(.*\.([Jj][Pp][Gg])|.*\.([Jj][Pp][Ee][Gg])$)">
</asp:RegularExpressionValidator>
Run Code Online (Sandbox Code Playgroud)


ico*_*ast 13

您不能严格限制文件类型,但如果浏览器支持它,您可以使它最初只显示某种类型的文件:

<form method="post" action="blahblah.blah">
  <input type="file" name="image" id="image" accept="image/png, image/jpeg" />
</form>
Run Code Online (Sandbox Code Playgroud)


net*_*tos 6

不,在网络上你不能从客户端,显然从服务器端你可以做惊人的事情.对于这种事情,程序员通常使用Activex,flash等.

  • 新的网络浏览器支持输入接受属性,因此您可以这样做: `accept=".png,.jpg,.jpeg,.gif" ` (4认同)