Blueimp jQuery File Upload 是功能強大的檔案上傳元件,其成功回調函式為 done(或 always 區分成功/失敗)。
$('#fileupload').fileupload({
url: '/api/upload',
dataType: 'json',
done: function (e, data) {
// 上傳成功回調
var response = data.result;
console.log('上傳成功:', response);
// 更新 UI、顯示縮圖、記錄檔案資訊等
},
fail: function (e, data) {
// 上傳失敗回調
console.error('上傳失敗:', data.errorThrown);
},
always: function (e, data) {
// 無論成敗皆執行
$('#progress').hide();
},
progressall: function (e, data) {
// 總進度條更新
var progress = parseInt(data.loaded / data.total * 100, 10);
$('#progress .bar').css('width', progress + '%');
}
});
data 物件屬性詳解| 屬性 | 說明 |
|---|---|
result | 伺服器回傳的 JSON 解析後物件(對應 dataType: 'json') |
files | 當上傳檔案陣列 |
originalFiles | 原始檔案陣列(未經過處理) |
jqXHR | jQuery XHR 物件,可取得狀態碼、回應標頭 |
errorThrown | 失敗時的錯誤物件 |
done 累加 data.result.files,全部完成後統一提交表單。dropZone 設定。Content-Range,前端使用 blob.slice() 分片。9RIA 論壇完整範例:jquery.fileupload 回調函數詳解