在HTML文件打开对话框中过滤文件

时间:2011-07-10 13:11:46

标签: javascript html fileopendialog

我正在使用HTML标记将文件上传到服务器:

<input type="file">

当我点击浏览按钮时,它会显示一个文件打开对话框。我可以通过将扩展名过滤器传递到该对话框来过滤文件吗?就像我们可以在.Net框架的文件打开对话框中那样传递一些东西:

Text files *.txt|.txt

使用此过滤器,我们只能打开.txt个文件。其他未向用户显示的文件。这个对话框有没有选项?

4 个答案:

答案 0 :(得分:3)

标准

实际上在HTML5中你可以设置accept属性,所以现在这是可能的! W3C standard州:

  

可以指定 accept 属性,以便为用户代理提供将接受哪些文件类型的提示。

接受的值[Full list in Wikipedia]

只需将有效的MIME type传递给该属性,例如:

  • audio/*
  • video/*
    • video/ogg
  • image/*
    • image/jpg
    • image/bmp

示例代码

<input type="file" accept="image/*">

答案 1 :(得分:2)

  

我的问题是,我可以通过将扩展名过滤器传递到该对话框来过滤文件吗?

不能使用普通type="file"输入执行此操作。您可以使用一些Flash upload controls来实现此目的。

答案 2 :(得分:1)

我认为您不能编辑此对话框选项,但您可以在用户选择文件后验证该文件。

编辑对话框,我记得你可以通过flash或Silverlight上传程序来完成,例如swfUpload。

答案 3 :(得分:0)

这是我需要过滤某些文件类型时想到的一段代码:

forwardRef

接受属性支持多个文件,以逗号分隔。