這不適用於每個瀏覽器,但這是通過AJAX執行多個文件上傳的好方法:
function upload_files(entityKey, files, url, progress_callback) {
var xhr = new XMLHttpRequest(), formData = new FormData();
xhr.upload['onprogress'] = progress_callback;
formData.append('entityKey', entityKey);
$.each(files, function(i, file) { formData.append('file[]', file);});
xhr.open("post", url, true);
xhr.setRequestHeader("Cache-Control", "no-cache");
xhr.send(formData);
}
entityKey是服務器上參數的示例。 「文件」參數來自文件類型輸入表單元素的「文件」屬性(作爲支持多個數組的數組)。 'progress_callback'參數是一個函數,它接受一個具有(至少)'loaded'和'total'字段(單位是字節)的對象。它不關心服務器響應。
謝謝,但我真的想編碼,並瞭解發生了什麼 – 2010-12-17 03:32:46
@jason爲什麼要重新發明輪子? – 2010-12-17 03:56:29