js代码
$(function () {
$("#submit").click(function (e) {
e.preventDefault()
alert("click");
$.ajax({
url:"mineController/videoUpload",
type:"post",
data:new FormData($("#form")[0]),
cache: false,//上传文件不需要缓存
processData:false,/**
*必须false才会自动加上正确的Content-Type
*/
contentType:false,/**
* 必须false才会避开jQuery对 formdata 的默认处理
* XMLHttpRequest会对 formdata 进行正确的处理
*/
dataType:"json",
success:function (data) {
if(data.flag){
alert(data.msg);
}else {
alert(data.msg);
}
} ,
error:function (data) {
alert("error");
}
});
});
});
form表单
<div >
<form class="form-inline" enctype="multipart/form-data" id="form" style="margin-top: 150px;margin-left: 500px">
<div>
<label>选择文件</label>
<input type="file" name="upload" id="upload">
</div><br>
<div style="padding-top: 20px">
<input type="submit" id="submit" value="上传视频" style="background-color: #2aabd2">
</div>
</form>
</div>
后台代码
<!-- 配置文件解析器-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="1073741824"></property>
<property name="defaultEncoding" value="UTF-8"></property>
</bean>
总结
- 配置文件必须要有id值,且必须为multipartResolver;
- form表单的文件上传input的name值必须和后台控制器的参数名称一样
- processData:false,必须false才会自动加上正确的Content-Type
- contentType:false, 必须false才会避开jQuery对 formdata 的默认处理, XMLHttpRequest会对 formdata 进行正确的处理;
- 记录一下,希望能帮助大家