FormData 發送,監聽 xhr.upload.onprogress 更新進度條。{success: true, url: '/uploads/xxx.jpg'}。success 回呼中:<img src="url">。url 寫入隱藏域供表單提交。
$('#fileupload').fileupload({
dataType: 'json',
progressall: function(e, data) {
var p = parseInt(data.loaded / data.total * 100, 10);
$('#progress .progress-bar').css('width', p + '%');
},
done: function(e, data) {
if (data.result.success) {
$('#preview').attr('src', data.result.url).show();
$('#fileUrl').val(data.result.url);
} else {
alert('上傳失敗:' + data.result.msg);
}
}
});
@PostMapping("/upload")
@ResponseBody
public Map upload(@RequestParam("file") MultipartFile file) {
String path = saveFile(file); // 自行實現儲存
return Collections.singletonMap("success", true)
.put("url", path);
}
blueimp/jQuery-File-Upload:功能完整、支援分塊、拖拽、圖片預覽、進度條、跨域。