国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > HTML > 正文

HTML5應用之文件上傳

2019-10-26 17:42:09
字體:
來源:轉載
供稿:網友

長期以來,開發者們一直為此苦惱,大部分為解決這個問題都采用了flash作為解決方案,但flash并非靈丹妙藥,因為flash版本,割據造成的問題有時反倒成為了噩夢。有些網站則采用了form標簽的enctype=multipart/form-data屬性,但這一屬性要求服務器作出特殊的設置才能夠顯示進度,而且本身也比較復雜,復雜就意味著容易出現錯誤,這可不是我們想要的。

現在我們來看看Html5為什么能夠解決這個問題,以及,它到底能做的多好。

用HTML5上傳文件

在HTML5標準中,XMLHttpRequest對象被重新定義,被稱為“XMLHttpRequest Level 2”,其中包含了以下5個新特性:

1、支持上傳、下載字節流,比如文件、blob以及表單數據

2、增加了上傳、下載中的進度事件

3、跨域請求的支持

4、允許發送匿名請求(即不發送HTTP的Referer部分)

5、允許設置請求的超時

在這篇教程中,我們主要關注第一和第二項特性,尤其是第二項——它能夠提供我們想要的上傳進度。和之前的方案不同,這個方案并不要求服務器作出特殊的設置,因此大家邊看教程就可以邊動手試試了。

上面圖示的就是我們能夠實現的內容:

1、顯示上傳的文件信息,比如文件名、類型、尺寸

2、一個能夠顯示真實進度的進度條

3、上傳的速度

4、剩余時間的估算

5、已上傳的數據量

6、上傳結束后服務器返回的響應

另外,憑借XMLHttpRequest,我們的上傳過程整個都是異步的,因此用戶在上傳文件的時候,依然可以操作網頁當中的其它元素,并不需要專門等待上傳的完成。而在上傳結束后,我們能夠獲取服務器發回的響應,因此整個上傳過程都顯得相當順理成章。

HTML5的進度事件

HTML5當中新增了一個進度事件(Progress Events),這個事件為我們提供了以下信息:

1、total – 文件大小

2、loaded – 已上傳的大小

3、lengthComputable – 進度是否可計算

信息并不多,但是在計算文件進度上已經足夠了。當然,也還有很多東西它沒有直接給出,這非常遺憾。

HTML

與普通的文件上傳代碼并沒有太大差異。不過注意,input標簽關聯了一個JavaScript函數在onchange上。

<!DOCTYPE html><html><head> <title>使用XMLHttpRequest上傳文件</title></head><body><form id="form1" enctype="multipart/form-data" method="post" action="upload.php"><div class="row"> <label for="fileToUpload">Select a File to Upload</label><input type="file" name="fileToUpload" id="fileToUpload" onchange="fileSelected();"/> </div><div id="fileName"></div><div id="fileSize"></div><div id="fileType"></div><div class="row"><input type="button" onclick="uploadFile()" value="Upload" /> </div><div id="progressNumber"></div></form></body></html>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 固阳县| 大英县| 金沙县| 松原市| 怀柔区| 木兰县| 龙口市| 镇江市| 台中县| 扎囊县| 常州市| 镇坪县| 年辖:市辖区| 会东县| 玉田县| 辉县市| 延川县| 彭水| 桦南县| 丰顺县| 梁平县| 盐津县| 凤冈县| 济宁市| 崇仁县| 涡阳县| 化州市| 崇阳县| 石城县| 大同市| 洛川县| 故城县| 富宁县| 万载县| 洛阳市| 水富县| 长沙县| 兴业县| 佳木斯市| 莱芜市| 河东区|