使用restful接口写法,将参数加到路径中就可以在上传时传递参数了
1、使用表单提交时:
form表单:
<form id="imageForm" action="upload/uploadImage/参数1/参数2..." enctype="multipart/form-data">
<div>
<input type="file" id="input-image" name="input-image">
<input type="submit" value="提交"/>
</div>
</form>
controller处理:
@RequestMapping(value = "upload/uploadImage/{参数1名称}/{参数2名称}/...", method = RequestMethod.POST)
@ResponseBody
public boolean uploadImage(HttpServletRequest request, @PathVariable 参数类型 参数1名称, @PathVariable 参数类型 参数2名称,...) {
//在此处执行程序逻辑
}
注释:上面的 … 是指更多的参数。
2、使用ajax提交时:
ajax写法:
$.ajax({
url: "upload/uploadImage/参数1/参数2/...",
type: 'POST',
cache: false,//上传文件无需缓存
data: new FormData($("#imageForm")[0]),
processData: false,//用于对data参数进行序列化处理 这里必须false
contentType: false,//enctype="multipart/form-data",不能再指定其他mime类型
success: function (data) {
//上传成功
},
error: function (jqXHR, textStatus, errorThrown) {
toastError("请求失败,请重试!" + errorThrown);
}
});
controller处理:
@RequestMapping(value = "upload/uploadImage/{参数1名称}/{参数2名称}/...", method = RequestMethod.POST)
@ResponseBody
public boolean uploadImage(HttpServletRequest request, @PathVariable 参数类型 参数1名称, @PathVariable 参数类型 参数2名称,...) {
//在此处执行程序逻辑
}
注释:上面的 … 是指更多的参数。
如有不对,敬请指出。