雖然現(xiàn)在已經(jīng)可以通過表單的方式用瀏覽器向服務(wù)器傳輸文件,尤其是<input type=file>這種表單控件,然而這東西一次最多只能傳遞一個文件。如果用戶需要上傳整個相冊或者多張圖片,那么技術(shù)人員只好從其他途徑想辦法了,比如Flash或者JS。但是現(xiàn)在通過HTML5提供的新標簽,我們就可以完全不需要那些額外的東西了。HTML5為上傳文件提供了幾個新標簽,比如multiple就是為了支持多文件上傳專用的。multiple是一個bool標簽來表示是否允許用戶上傳多個文件。比如<input type="file" multiple/>在最新版的Safari, Chrome, FireFox, IE以及Opera都是支持的。至于控件的外觀渲染那就是各種瀏覽器自己的事情了。為了能讓用戶一次性選擇多個文件,用戶將可用Shift或者Ctrl或者CMD按鍵逐個點擊要添加的文件。
如何使用
從技術(shù)角度看,你只需要在input控件中標注multiple標簽就夠了
以下就是演示代碼:
<!DOCTYPE html>
<html>
<head>
<title>
Solution 4-5: Sending multiple files
</title>
</head>
<body>
<form id="myForm">
<fieldset>
<legend>Solution 4-5: Sending multiple files</legend>
<label>Upload one or more files:</label>
<input type="file" name="multipleFileUpload" multiple />
</fieldset>
</form>
</body>
</html>
重要心得
用戶選擇的多個文件傳遞到服務(wù)端后將會被服務(wù)端的編程語言去處理的。有些編程語言,比如PHP需要你為name標簽的字符添加方括號來支持傳輸多個文件。
<input name="filesUploaded[]" type="file" multiple />
這樣,PHP將構(gòu)造一個數(shù)據(jù)類型的數(shù)組,來容納一個個上傳到服務(wù)器的文件。相反如果你在HTML標簽中不適用方括號的話,PHP將僅僅只接受到最后一個文件。
原文:http://css.dzone.com/articles/sending-multiple-files-html5