Firefox 3.6 支持 多文件输入。此项新功能允许您使用标准技术一次获得多个文件作为输入,这是一个巨大的改进,因为您以前只能一次输入一个文件,或者需要使用第三方(专有)应用程序。这将特别有用,例如,用于照片上传。
输入标签
要让用户选择本地文件,请在网页上使用输入标签。这将向用户显示文件选择器。
在 Firefox 3.6 中,输入标签已扩展为支持多文件。
用户仍然会看到相同的文件选择器,但可以选择多个文件。
表单标签
您仍然可以使用经典的 form
机制。
如果服务器端代码是用 PHP 编写的,请不要忘记确保 name
属性的值带有方括号。方括号不是来自 HTML 规范,但需要将请求结果作为数组进行处理(参见 PHP 文档)。
以下是一个示例,它遍历文件列表并打印每个文件名。
foreach ($_FILES['uploads']['name'] as $filename) {
echo '
使用文件 API
Firefox 3.6 还支持 文件 API。这允许您在将文件发送到服务器之前对客户端进行额外的处理。您可以使用输入 DOM 元素的 files
属性访问选定的文件,然后使用文件 API 对文件进行操作。
例如,以下是如何获取用户选择的每个文件名的示例。与之前的 PHP 示例不同,这是在客户端完成的。
var input = document.querySelector("input[type='file']");
// You've selected input.files.length files
for (var i = 0; i < input.files.length; i++) {
// input.files[i] is a file object
var li = document.createElement("li");
li.innerHTML = input.files[i].name;
ul.appendChild(li);
}
演示
在我们的 多文件输入演示 中查看此机制的实际效果。您需要 Firefox 3.6(测试版)。
文档
要详细了解多文件输入,请查看 MDC 上的文档。
关于 Paul Rouget
Paul 是一名 Firefox 开发人员。
28 条评论