我用的是這個:https://github.com/carlcarl/AjaxFileUploadhtml
下載地址在這裏:http://files.cnblogs.com/files/kissdodog/ajaxfileupload_JS_File.rargit
AjaxFileUpload.js並非一個很出名的插件,只是別人寫好的放出來供你們用,原理都是建立隱藏的表單和iframe而後用JS去提交,得到返回值。github
當初作了個異步上傳的功能,選擇它由於它的配置方式比較像jQuery的AJAX,我很喜歡。ajax
ajaxFileUpload是一個異步上傳文件的jQuery插件 語法:$.ajaxFileUpload([options])json
options參數說明:安全
一、url 上傳處理程序地址。 2,fileElementId 須要上傳的文件域的ID,即「<input type="file">」的ID。 3,secureuri 是否啓用安全提交,默認爲false。 4,dataType 服務器返回的數據類型。能夠爲xml,script,json,html。若是不填寫,jQuery會自動判斷。 5,success 提交成功後自動執行的處理函數,參數data就是服務器返回的數據。 6,error 提交失敗自動執行的處理函數。 7,data 自定義參數。這個東西比較有用,當有數據是與上傳的圖片相關的時候,這個東西就要用到了。 8, type 當要提交自定義參數時,這個參數要設置成post服務器
使用方法: 1.引入ajaxfileupload.js 2.在HTML中寫出異步
<input id="fileInput" type="file" name="file"/>
3.在js中使用$.ajaxFileUploadide
// 上傳 $.ajaxFileUpload({ url : ctx + 'calculate/upload', secureuri : false, fileElementId : 'fileInput', dataType : 'json', success : function(data, status) { $("#progressbar").progressbar("value", 100); $("#download_div").show(); }, error : function(data, status) { $("#progressbar").hide(); alert("上傳文件錯誤"); } });
4.在controller中接收函數
public String upload(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request, ModelMap model)
這樣接收的file就是上傳的文件了