我用的是这个: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就是上传的文件了