2009-10-20 101 views
42

如何用<input type="file">選擇多個文件?如何用<input type =「file」>選擇多個文件?

+0

這是關於JavaScript和HTML – Mask 2009-10-20 08:47:26

+0

你的意思上傳多個文件一氣呵成(當你選擇一次一個,然後點擊上傳)?或者你的意思是使用Ctrl +單擊在一個瀏覽器窗口中選擇幾個文件? – cletus 2009-10-20 09:04:54

+2

您可以在輸入元素上使用多個屬性來使用HTML5。 這是一個很好的小提琴,它利用它:http://jsfiddle.net/0GiS0/Yvgc2/ – Costa 2013-07-05 22:34:22

回答

38

新的答案:

在HTML5中,你可以添加multiple屬性選擇超過1個文件。

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

老答案:

只能選擇每<input type="file" /> 1個文件。如果你想 發送多個文件,你將不得不使用多個輸入標籤或使用Flash或Silverlight的 。

+6

Gmail使用Flash來做到這一點 – 2009-10-20 08:52:48

+0

你能提供一個工作演示嗎? – Mask 2009-10-20 08:58:44

+0

http://www.uploadify.com/demo/ – ZippyV 2009-10-20 09:00:04

60

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

+8

不支持在IE9和之前:( – 2012-11-09 10:40:12

11

這個jQuery插件(jQuery File Upload Demo),難道沒有閃光燈,在形式它的使用:

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

也不支持IE9-,https:/ /github.com/blueimp/jQuery-File-Upload/wiki/Browser-support#multiple-file-selection – JerryDDG 2014-11-26 10:44:58

14

整個事情應該是這樣的:

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

請確保您有在enctype='multipart/form-data'屬性您的<form>標記,或者在提交後無法讀取服務器端的文件!

7

您現在可以使用HTML5

實質上,您使用文件輸入的多個屬性。

<input type='file' multiple> 
+0

這裏是一個很好的小提琴,它利用它:http://jsfiddle.net/0GiS0/Yvgc2 – Costa 2013-07-05 22:35:59

+0

那麼支持這個東西?Canisuse.com沒有信息 – 2013-07-15 22:21:09

+0

我不確定,我查了同一個地方,哈哈。 – Costa 2013-08-01 14:10:11

1

HTML5爲類型屬性爲文件的輸入元素提供了新的屬性倍數。 所以你可以選擇多個文件,IE9和以前的版本不支持這個。

注意:請小心輸入元素的名稱。 當你想要上傳多個文件時,你應該使用數組而不是字符串作爲 名稱屬性的值。

例如:輸入類型= 「文件」 NAME = 「myPhotos []」 多個= 「多」

,如果你正在使用PHP,那麼你將獲得$ _FILES數據和 用var_dump($ _ FILES ),看看輸出並做處理 現在,您可以遍歷和做其他

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

複製並粘貼到您的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>'; 
} 

通過我這個網頁找到你:http://www.html5rocks.com/en/tutorials/file/dndfiles/

-1

那很容易...

<input type='file' multiple> 
$('#file').on('change',function(){ 
    _readFileDataUrl(this,function(err,files){ 
      if(err){return} 
      console.log(files)//contains base64 encoded string array holding the 
      image data 
    }); 
}); 
var _readFileDataUrl=function(input,callback){ 
    var len=input.files.length,_files=[],res=[]; 
    var readFile=function(filePos){ 
     if(!filePos){ 
      callback(false,res); 
     }else{ 
      var reader=new FileReader(); 
      reader.onload=function(e){    
       res.push(e.target.result); 
       readFile(_files.shift()); 
      }; 
      reader.readAsDataURL(filePos); 
     } 
    }; 
    for(var x=0;x<len;x++){ 
     _files.push(input.files[x]); 
    } 
    readFile(_files.shift()); 
}; 
+1

這已經回答得很清楚了。什麼是需要添加一個javascript例? – RightHandedMonkey 2017-11-30 14:54:47

相關問題