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

首頁 > 開發(fā) > AJAX > 正文

HTML5 Ajax文件上傳進度條如何顯示

2024-09-01 08:28:04
字體:
供稿:網(wǎng)友

原本打算使用jquery插件進行異步文件上傳,比如uploadfy但是需要額外的支持,也有人用iframe模仿異步上傳機制,感覺都比較別扭。因為項目不考慮低版本瀏覽器,所以決定用html5實現(xiàn)。下面只是一個簡單的demo,具體樣式需要自己去做。
后臺基于strut2進行文件處理,具體因項目而定。只是要注意設置文件大小的限制。  <constant name="struts.multipart.maxSize" value="52428800"/>這個配置根據(jù)具體情況設定,超過此值會報404.
首先是上傳頁面,比較簡單,附帶了文件上者這個參數(shù)。

upload.jsp

<%@page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%> <%String path = request.getContextPath(); %><!DOCTYPE html><html><head> <title>使用XMLHttpRequest上傳文件</title> <script type="text/javascript"> var xhr = new XMLHttpRequest();  //監(jiān)聽選擇文件信息 function fileSelected() {  //HTML5文件API操作  var file = document.getElementById('fileName').files[0];  if (file) {   var fileSize = 0;   if (file.size > 1024 * 1024)   fileSize = (Math.round(file.size * 100 / (1024 * 1024)) / 100).toString() + 'MB';   else   fileSize = (Math.round(file.size * 100 / 1024) / 100).toString() + 'KB';   document.getElementById('fileName').innerHTML = 'Name: ' + file.name;   document.getElementById('fileSize').innerHTML = 'Size: ' + fileSize;   document.getElementById('fileType').innerHTML = 'Type: ' + file.type;  }  }  //上傳文件 function uploadFile() {  var fd = new FormData();  //關(guān)聯(lián)表單數(shù)據(jù),可以是自定義參數(shù)  fd.append("name", document.getElementById('name').value);  fd.append("fileName", document.getElementById('fileName').files[0]);  //監(jiān)聽事件  xhr.upload.addEventListener("progress", uploadProgress, false);  xhr.addEventListener("load", uploadComplete, false);  xhr.addEventListener("error", uploadFailed, false);  xhr.addEventListener("abort", uploadCanceled, false);  //發(fā)送文件和表單自定義參數(shù)  xhr.open("POST", "<%=path%>/user/uploadifyTest_doUpload");  xhr.send(fd);  } //取消上傳 function cancleUploadFile(){ xhr.abort(); }  //上傳進度 function uploadProgress(evt) {  if (evt.lengthComputable) {   var percentComplete = Math.round(evt.loaded * 100 / evt.total);   document.getElementById('progressNumber').innerHTML = percentComplete.toString() + '%';  }  else {   document.getElementById('progressNumber').innerHTML = 'unable to compute';  } } //上傳成功響應 function uploadComplete(evt) {  //服務斷接收完文件返回的結(jié)果  alert(evt.target.responseText); }  //上傳失敗 function uploadFailed(evt) {  alert("上傳失敗"); } //取消上傳 function uploadCanceled(evt) {  alert("您取消了本次上傳."); } </script></head><body><form id="form1" enctype="multipart/form-data" method="post" action="upload.php"><div class="row">  <label for="fileToUpload">選擇文件</label><input type="file" name="fileName" id="fileName" onchange="fileSelected();"/> </div><div id="fileName"></div><div id="fileSize"></div><div id="fileType"></div><div class="row">上傳者:<input type="text" name="name" id="name"/><input type="button" onclick="uploadFile()" value="上傳" /><input type="button" onclick="cancleUploadFile()" value="取消" /> </div><div id="progressNumber"></div></form></body></html>            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 石家庄市| 鄄城县| 鄄城县| 华坪县| 始兴县| 兴和县| 游戏| 宁远县| 萨嘎县| 中西区| 隆德县| 历史| 酒泉市| 香格里拉县| 贵南县| 甘谷县| 淅川县| 淮南市| 肥乡县| 潢川县| 牟定县| 敦煌市| 辉南县| 青神县| 寿阳县| 田东县| 阿图什市| 泰宁县| 临夏市| 噶尔县| 筠连县| 开江县| 郧西县| 兴国县| 海阳市| 泰州市| 卢龙县| 北安市| 高陵县| 康平县| 东莞市|