2010-05-06 84 views
22

是否可以允许fileupload控件仅显示图像?如何在FileUpload控件中限制文件类型

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

+0

你表示什么意思?你的意思是上传? – 2010-05-06 10:06:33

+0

@Amgdy - “show”=只有在点击“浏览”按钮时弹出的实际文件对话框浏览器中才显示某种类型的文件。 – Jagd 2012-01-23 17:35:22

回答

7

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

1

带滑动<input type="file">,恐怕也不可能在客户端。

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

21

我发现这个问题没有直接的解决方案。

这是使用的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> 
10

您不能严格限制文件类型,但如果浏览器支持它,你可能会导致它最初只显示一个特定类型的文件:

<form method="post" action="blahblah.blah"> 
    <input type="file" name="image" id="image" accept="image/png, image/jpeg" /> 
</form> 
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' 保存数据/上传..

33

在2015年,化网页浏览器支持输入接受属性,所以你可以这样做:

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

这应该是被接受的答案。 – mbomb007 2016-07-28 16:37:55

+5

这仍然允许用户上传不使用其中一个扩展名的文件 – jtate 2016-11-29 16:57:41

+0

@jtate该问题仅限于* show * only图像。您应该始终验证服务器端的上传(以及任何用户输入),以吸引有人尝试上传不需要的内容。用户可以简单地将不需要的文件的扩展名重命名为接受列表中的某个文件。因此,您应该在文件上传中接受接受列表,作为对用户的简单帮助,并且至少在后端进行验证。 – 2016-12-05 07:37:16

1

使用接受属性,只显示在文件浏览器相似图片如下 -

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