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]//获取附件对象,可通过数组封装再提交
      
        
        
    })

  

posted @ 2016-05-08 03:07  owenzhou  阅读(353)  评论(0编辑  收藏  举报