jquery 通过ajax FormData 对象上传附件
之前上传附件都是用插件,或者用form表单体检(这个是很久以前的方式了),今天突发奇想,自己来实现附件上传,具体实现如下
html:
<div>
流程图: <input id="file" type="file" >
<button ng-click="bpmmainFunction.createBpm()">提交</button>
</div>
js:
$scope.bpmmainFunction={
//创建bpm
createBpm:function(){
var file=$("#file")[0].files[0];//获取文件对象
var form = new FormData(); //这个是关键
form.append("file", file);// 文件对象
$.ajax({
url:projectName+"/testactivity/test" ,//后台请求
type: 'POST',
cache: false,
data: form,
processData: false,
contentType: false,
async: false
}).done(function(res) {
}).fail(function(res) {
});
}
}
java 代码:(用的springmvc,MultipartFile 配置就不说了)
@RequestMapping(value = "test")
public void test(@RequestParam("file") MultipartFile file2){
//helloWordService.testProccess();
//helloWordService.createProccess();
testBPMService.testProccess(file2);
}
如果有多附件 可以通过input file 的change事件来封装上传
$("#file").change(function(){
var file=this.files[0]//获取附件对象,可通过数组封装再提交
})