1.服务器端配置
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"/>
<!-- 指定所上传文件的总大小不能超过8M。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 -->
<property name="maxUploadSize" value="8388608"/>
</bean>
2.Controller
@RequestMapping(value = "", method = RequestMethod.POST)
private Result fileUpload(MyFileVo vo) {}
public class MyFileVo {
private CommonsMultipartFile file;
private String otherParam;
private int otherInt;
}
3.ajax
var fd = new FormData();
fd.append( "file", $("input[name=file]").files[0]);
$.ajax({
type: "POST",
url: "/uploadFile",
data: fd,
contentType: false,
processData: false,
cache: false,
/*beforeSend: function(xhr, settings) {
xhr.setRequestHeader("Content-Type", "multipart/form-data;boundary=gc0p4Jq0M2Yt08jU534c0p");
settings.data = {name: "file", file: inputElement.files[0]};
},*/
success: function (result) {
if ( result.reseponseInfo == "SUCCESS" ) {
} else {
}
},
error: function (result) {
console.log(result.responseText);
}
});
ps:
一定注意,contentType: false是必须的.
自己设置multi-part会报错找不到file
不设置不会自动转换成为contentType:multi-part而是xxx-urlencode-data