我正在使用 HTML 标记将文件上传到服务器:
<input type="file">
当我单击浏览按钮时,它会显示一个文件打开对话框。我可以通过将扩展过滤器传递给该对话框来过滤文件吗?就像我们可以在 .Net 框架的文件打开对话框中通过传递以下内容一样:
Text files *.txt|.txt
使用这个过滤器我们只能打开.txt
文件。未向用户显示的其他文件。这个对话框有什么选项吗?
我正在使用 HTML 标记将文件上传到服务器:
<input type="file">
当我单击浏览按钮时,它会显示一个文件打开对话框。我可以通过将扩展过滤器传递给该对话框来过滤文件吗?就像我们可以在 .Net 框架的文件打开对话框中通过传递以下内容一样:
Text files *.txt|.txt
使用这个过滤器我们只能打开.txt
文件。未向用户显示的其他文件。这个对话框有什么选项吗?
实际上,在 HTML5 中,您可以设置accept
属性,所以现在这是可能的!W3C 标准规定:
可以指定accept属性以向用户代理提供将接受哪些文件类型的提示。
只需将有效的MIME 类型传递给属性,例如:
audio/*
video/*
video/ogg
image/*
image/jpg
image/bmp
<input type="file" accept="image/*">
我的问题是,我可以通过将扩展过滤器传递给该对话框来过滤文件吗?
不,您不能使用普通type="file"
输入来执行此操作。您可以使用一些Flash 上传控件来实现这一点。
我认为您无法编辑此对话框选项,但您可以在用户选择文件后验证该文件。
要编辑对话框,我记得您可以通过 flash 或 Silverlight 上传器(例如 swfUpload)来完成。
这是我在需要过滤某些文件类型时想到的一段代码:
<input type="file" accept=".xls, .xlsx, .csv" placeholder="File to be upload" />
Accept 属性支持多个文件以逗号分隔。