因ajaxfileupload自身不能用data传递参数到后台,所以需要对源文件进行轻微的改动。
在ajaxfileupload.js中
主要有两处修改:
26行中的createUploadForm属性
添加代码:
//处理json数据,往form表单中添加type='hidden'的input
if (data) {
for (var i in data) {
$('<input type="hidden" name="' + i + '" value="' + data[i] + '" />').appendTo(form);
}
}
195行中的uploadHttpData属性
源码:
if ( type == "json" )
eval( "data = " + data );
修改为:
if ( type == "json" )
data = jQuery.parseJSON(jQuery(data).text());
修改成功后,前台请求时候就可这么写:
$.ajaxFileUpload({
url:"user/upload/headpic",
data:{"username":username,"fileType":fileType,"headPicNameOld":headPicNameOld}
});
后台如用sprimgmvc,写上对应参数即可
@RequestMapping(value="/upload/headpic")
@ResponseBody
public String uploadPic(String username,String fileType,String headPicNameOld,MultipartFile headPic)
参考:
http://www.cnblogs.com/lyeo/archive/2012/05/11/2496261.html
在ajaxfileupload.js中
主要有两处修改:
26行中的createUploadForm属性
添加代码:
//处理json数据,往form表单中添加type='hidden'的input
if (data) {
for (var i in data) {
$('<input type="hidden" name="' + i + '" value="' + data[i] + '" />').appendTo(form);
}
}
195行中的uploadHttpData属性
源码:
if ( type == "json" )
eval( "data = " + data );
修改为:
if ( type == "json" )
data = jQuery.parseJSON(jQuery(data).text());
修改成功后,前台请求时候就可这么写:
$.ajaxFileUpload({
url:"user/upload/headpic",
data:{"username":username,"fileType":fileType,"headPicNameOld":headPicNameOld}
});
后台如用sprimgmvc,写上对应参数即可
@RequestMapping(value="/upload/headpic")
@ResponseBody
public String uploadPic(String username,String fileType,String headPicNameOld,MultipartFile headPic)
参考:
http://www.cnblogs.com/lyeo/archive/2012/05/11/2496261.html