1. 程式人生 > >jq上傳多張圖片(帶進度條)

jq上傳多張圖片(帶進度條)

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>xhr2</title>
</head>
<body>
<div style="text-align: center; margin: 100px">
<input type="file" id="file" name="file" multiple="multiple">
<progress id="uploadprogress" min="0" max="100" value="0">0</progress>
<button onclick="xhr2()">OK</button>
</div>
<script>
function xhr2() {
var xhr = new XMLHttpRequest();//第一步
//定義表單變數
var file = document.getElementById('file').files;
//console.log(file.length);
//新建一個FormData物件
var formData = new FormData(); //++++++++++
formData.append("enctype","multipart/form-data");
//追加檔案資料
for (i = 0; i < file.length; i++) {
formData.append("file[" + i + "]", file[i]); //++++++++++
}
//formData.append("file", file[0]); //++++++++++


//post方式
xhr.open('POST', '/common/doUpload'); //第二步驟
xhr.upload.onprogress = function(event) {
if (event.lengthComputable) {
var complete = (event.loaded / event.total * 100 | 0);
var progress = document.getElementById('uploadprogress');
progress.value = progress.innerHTML = complete;
}
};
//傳送請求
xhr.send(formData); //第三步驟
//ajax返回
xhr.onreadystatechange = function() { //第四步
if (xhr.readyState == 4 && xhr.status == 200) {
console.log(xhr.responseText);
}
};
//設定超時時間
xhr.timeout = 100000;
xhr.ontimeout = function(event) {
alert('請求超時!');
}
}
</script>
</body>
</html>