我正在通过Ajax交互上传文件。我想一起发送信息,以便在服务器端构建路径。但我不知道是否有可能以及我该怎么做。
function uploadFD(){
var oMyForm = new FormData();
jQuery.each(jQuery('#file')[0].files, function(i, file) {
oMyForm.append('file-'+i, file);
});
$.ajax({
url: 'FileController',
data: oMyForm,
processData: false,
contentType: false,
type: 'POST',
success: function(data){
$('#Result').html(data.msg);
$.messager.show({
title : 'Success',
msg : data.msg,
showType : 'show'
});
}
});
}
控制器:
@RequestMapping(method = RequestMethod.POST, headers = "content-type=multipart/*")
public void upload(MultipartHttpServletRequest request,
HttpServletResponse response) {
response.setCharacterEncoding("UTF-8");
Iterator<String> itr = request.getFileNames();
MultipartFile mpf = request.getFile(itr.next());
System.out.println(mpf.getOriginalFilename() +" uploaded!");
//... other stuff
}
我怎么能这样做?谢谢!
答案 0 :(得分:1)
是的,这是可能的。
FormData.append
的第二个参数也可以是一个简单的字符串:
oMyForm.append('param', 'value');
您可以通过request.getParameter()
访问服务器上的参数值:
String v = request.getParameter("param");