java - 上传文件时所需的 MultipartFile 参数 'file' 不存在

标签 java jquery spring-boot jboss

我正在尝试上传文件,但我收到所需的 MultipartFile 参数"file"不存在 400 错误请求 org .springframework.web.bind.MissingServletRequestParameterException

我的代码在这里:

<form id="uploadrecords" method="post" enctype="multipart/form-data">                     
 <div class="col-md-12">
 <div class="form-group" style="margin-top: 11px !important;">
 <label for="uploadfile" class="col-md-4 control-label"><span class="mandatory"></span>File to upload:</label>
 <div class="col-md-6">
 <input type="file" class="filestyle" data-buttonName="btn-primary" name="file" id="upload" accept="*"/>
 </div>
 </div>
 <div class="form-actions" style="margin-top: 51px;margin-left: 358px;">
 <button type="submit"  class="btn btn-success" style="padding: 6px 12px;"   id="upload" ><i class="fa fa-cloud-upload"></i> Upload</button>
 <button type="button"  class="btn btn-danger"  style="padding: 6px 12px;" id="cancel"  ><i class="fa fa-ban"></i> Cancel</button> 
 </div>
 </div>
</form>

这里是 Jquery 代码:

$("form#uploadrecords").submit(function(){                                  
    var formData = new FormData($(this)[0]);                                    
    $.ajax({
    url : '/uploadfile', 
    type: 'POST',
    data: formData,
    async: false,
    beforeSend: beforeSendHandler,
    success: function (data) {
    var msg=data.msg;
    var obj=data.obj;   
    if(obj != 0){
    $("#countfail").html(obj);
    $("#download-modal").modal('show');
    }else{
    bootbox.alert(msg);
    }
    },
    cache: false,
    contentType: false,
    processData: false
    });
});

Java代码:

@RequestMapping(value = "/uploadfile", headers = "Content-Type=multipart/form-data", method = RequestMethod.POST)
public @ResponseBody StatusResponse upload( @RequestParam(value = "file") MultipartFile file, HttpServletRequest request,
        HttpServletResponse response) throws IOException, NoSuchFieldException, SecurityException, ParseException {
    StatusResponse sr = new StatusResponse();
    System.out.println("filename::::" + file.getOriginalFilename());
    //my logic here
    return sr;
}

它没有命中 Controller 类。我在 Firebug 控制台 中发现错误。

我正在使用 spring bootjboss-eap-6.4

我的代码有什么问题。如何解决这个问题?

最佳答案

如果您正在使用@EnableAutoConfiguration,那么您需要执行此处讨论的以下操作https://github.com/spring-projects/spring-boot/issues/2958

@EnableAutoConfiguration(排除= {MultipartAutoConfiguration.class}) 定义以下 bean

@Bean(name = "multipartResolver") 公共(public) CommonsMultipartResolver commonsMultipartResolver(){ CommonsMultipartResolver 解析器 = new CommonsMultipartResolver();解析器.setMaxUploadSize(50*1024*1024);返回解析器; }

@Bean @Order(0) public MultipartFilter multipartFilter(){ MultipartFilter multipartFilter = new MultipartFilter(); multipartFilter.setMultipartResolverBeanName("multipartResolver");返回多部分过滤器; }

关于java - 上传文件时所需的 MultipartFile 参数 'file' 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46251875/

相关文章:

java - 在 Android 中使用 Graph API 在 Facebook 上直播视频

jquery - Bootstrap 日期和时间选择器

javascript - 如何在 blueimp jQuery 文件上传上使用自己的文件处理程序?

javascript - 获取项目数 jQuery.each()

java - 创建主题失败”,"exception":"\norg. apache.kafka.common.errors.UnsupportedVersionException

java - @TestPropertySource 不适用于 Spring 1.2.6 中使用 AnnotationConfigContextLoader 的 JUnit 测试

java - 如何修复Java异常 "SQLSyntaxErrorException: Table ' x.y'不存在”

java - NoClassDefFoundError sun/io/ByteToCharConverter 与 InterBase JDBC 驱动程序

java - 继承代码 : To format or not to format?

java - 将 JTextField 字符串转换为 Int