SpringMVC上传文件

http://stackoverflow.com/questions/29488852/jquery-ajax-file-upload-required-multipartfile-parameter-file-is-not-present

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>
  • 1
  • 2
  • 3
  • 4
  • 5

2.Controller

@RequestMapping(value = "", method = RequestMethod.POST)
private Result fileUpload(MyFileVo vo) {}



public class MyFileVo {
    private CommonsMultipartFile file;
    private String otherParam;
    private int otherInt;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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);
                }
            });
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

ps: 
一定注意,contentType: false是必须的. 
自己设置multi-part会报错找不到file 
不设置不会自动转换成为contentType:multi-part而是xxx-urlencode-data

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值