如何过滤输入类型="文件"特定文件类型的对话框?

时间:2012-01-20 07:35:33

标签: javascript html

我想在点击<input type="file">的浏览按钮时将浏览器限制为JPG文件。

是否可以浏览特定的文件类型?

5 个答案:

答案 0 :(得分:68)

请参阅http://www.w3schools.com/tags/att_input_accept.asp

  

除了以外所有主流浏览器都支持accept属性   Internet Explorer和Safari。定义和用法

     

accept属性指定服务器的文件类型   接受(可以通过文件上传提交)。

     

注意:accept属性只能与<input type="file">一起使用。

     

提示:请勿将此属性用作验证工具。文件上传   应该在服务器上验证。

     

语法<input accept="audio/*|video/*|image/*|MIME_type" />

     

提示:要指定多个值,请使用逗号分隔值   (例如<input accept="audio/*,video/*,image/*" />

答案 1 :(得分:64)

当文件对话框显示时,这将提供正确的(自定义)过滤器:

<input type="file" accept=".jpg, .png, .jpeg, .gif, .bmp, .tif, .tiff|image/*">

答案 2 :(得分:0)

您可以使用accept属性。它在IE和Safari中不起作用。

根据您的项目规模和可扩展性,您可以使用Struts。 Struts提供了两种限制上传文件类型的方法,以声明方式和编程方式。

了解更多信息: http://struts.apache.org/2.0.14/docs/file-upload.html#FileUpload-FileTypes

答案 3 :(得分:0)

<input type="file" file-accept="jpg gif jpeg png bmp">添加自定义属性,并在javascript中读取与属性file-accept提供的扩展名匹配的文件名。这将是一种伪造,因为具有上述任何扩展名的文本文件将被错误地视为图像。

答案 4 :(得分:0)

<asp:FileUpload ID="FileUploadExcel" ClientIDMode="Static" runat="server" />
<asp:Button ID="btnUpload" ClientIDMode="Static" runat="server" Text="Upload Excel File" />

$('#btnUpload').click(function () {
    var uploadpath = $('#FileUploadExcel').val();
    var fileExtension = uploadpath.substring(uploadpath.lastIndexOf(".") + 1, uploadpath.length);

    if ($('#FileUploadExcel').val().length == 0) {
        // write error message
        return false;
    }

    if (fileExtension == "xls" || fileExtension == "xlsx") {
        //write code for success
    }
    else {
        //error code - select only excel files
        return false;
    }

});