如何用<input type =“file”>select多个文件?

如何用<input type="file">select多个文件?

新答案:

在HTML5中,您可以添加multiple属性来select多个文件。

 <input type="file" name="filefield" multiple="multiple"> 

老答案:

每个<input type="file" />只能select1个文件。 如果你想发送多个文件,你将不得不使用多个input标签或使用Flash或Silverlight。

还有HTML5 <input type="file" multiple />但是我不知道它有多广泛的支持。

整个事情应该是这样的:

 <form enctype='multipart/form-data' method='POST' action='submitFormTo.php'> <input type='file' name='files[]' multiple /> <button type='submit'>Submit</button> </form> 

确保你的<form>标签中有enctype='multipart/form-data'属性,否则在提交后你不能读取服务器端的文件!

这个jQuery插件( jQueryfile upload演示 )在没有使用Flash的情况下使用它的forms:

 <input type='file' name='files[]' multiple /> 

你现在可以用HTML5来做

实质上你使用文件input的多个属性。

 <input type='file' multiple> 

HTML5为type属性为file的input元素提供了新的属性倍数。 所以你可以select多个文件,IE9和以前的版本不支持这个。

注意:请小心input元素的名称。 当你想要上传多个文件时,你应该使用数组而不是string作为name属性的值。

例如:input type =“file”name =“myPhotos []”multiple =“multiple”

如果您使用的是PHP,那么您将获得$ _FILES中的数据并使用var_dump($ _ FILES)并查看输出并执行处理。现在,您可以迭代并完成其余

 <form action="" method="post" enctype="multipart/form-data"> <input type="file" multiple name="img[]"/> <input type="submit"> </form> <?php print_r($_FILES['img']['name']); ?> 

复制并粘贴到您的HTML:

 <input type="file" id="files" name="files[]" multiple /> <output id="list"></output> <script> function handleFileSelect(evt) { var files = evt.target.files; // FileList object // files is a FileList of File objects. List some properties. var output = []; for (var i = 0, f; f = files[i]; i++) { output.push('<li><strong>', escape(f.name), '</strong> (', f.type || 'n/a', ') - ', f.size, ' bytes, last modified: ', f.lastModifiedDate ? f.lastModifiedDate.toLocaleDateString() : 'n/a', '</li>'); } document.getElementById('list').innerHTML = '<ul>' + output.join('') + '</ul>'; } 

这是通过我从这个网页find的: http : //www.html5rocks.com/en/tutorials/file/dndfiles/