HTML5不依靠js來傳輸多文件的源代碼

2012-07-03 09:27:02來源:oschina作者:

雖然現(xiàn)在已經(jīng)可以通過表單的方式用瀏覽器向服務(wù)器傳輸文件,尤其是<input type=file>這種表單控件,然而這東西一次最多只能傳遞一個文件。如果用戶需要上傳整個相冊或者多張圖片,那么技術(shù)人員只好從其他途徑想辦法

雖然現(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

關(guān)鍵詞:HTML5js

贊助商鏈接: