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

时间:2010-05-06 10:05:03

标签: c# asp.net image file-upload

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

当我们点击“浏览”按钮时,它应该只显示图像。

8 个答案:

答案 0 :(得分:47)

2015年,网络浏览器支持输入接受属性,因此您可以执行此操作:

<asp:FileUpload ID="fileUploader" runat="server" accept=".png,.jpg,.jpeg,.gif" />

请记住,Visual Studio可能会向您显示有关此内容的消息,作为FileUpload ASP工具的无效属性。

答案 1 :(得分: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>

答案 2 :(得分:13)

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

<form method="post" action="blahblah.blah">
  <input type="file" name="image" id="image" accept="image/png, image/jpeg" />
</form>

答案 3 :(得分:7)

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

答案 4 :(得分:3)

//VALIDATE FILE EXTENTION
var _validFileFlag;
function fValidFileExt(vfilePath){
  var vFileName=vfilePath.split('\\').pop();
  var vFileExt=vfileName.split('.').pop();
  if(vFileExt.toUpperCase()=="JPEG" || vFileExt.toUpperCase()=="JPG"){
     _validFileFlag = true;
  } 
  _validFileFlag = false;
} 

<asp:FileUpload ID="FileUpload1" onchange="fValidFileExt(this.value);" runat="server"  />

保存数据/上传时检查'_validFileFlag'..

答案 5 :(得分:2)

假设您的意思是仅上传图片。

您可以检查文件的ContentType属性(即图像/ gif)。

点击此处查看示例:http://www.15seconds.com/issue/061116.htm

答案 6 :(得分:1)

使用普通<input type="file">,我担心在客户端无法做到这一点。

但是,某些第三方上传程序(例如SWFUpload)提供此功能。

答案 7 :(得分:1)

使用accept属性仅显示文件浏览器中的图像,如下所示 -

<asp:FileUpload ID="FileUploadFileType" runat="server" CssClass="form-control" accept=".png,.jpg,.jpeg,.gif" />

使用asp.nets RegularExpressionValidator验证具有验证消息的所选文件类型。

<asp:RegularExpressionValidator ID="RegExValFileUploadFileType" runat="server"
                        ControlToValidate="FileUploadFileType"
                        ErrorMessage="Only .jpg,.png,.jpeg,.gif Files are allowed" Font-Bold="True"
                        Font-Size="Medium"
                        ValidationExpression="(.*?)\.(jpg|jpeg|png|gif|JPG|JPEG|PNG|GIF)$"></asp:RegularExpressionValidator>