2017-08-07 105 views
0

我遇到了multipart文件的问题。我上传从前端(反应)的文件,并把它传递给我的后端是这样的:将formdata上传到远程Tomcat服务器时,Multipart为null

export function uploadExcelFile(files) { 
    const dataToTransfer = new FormData(); 
    dataToTransfer.append('uploadedFile', files[0]); 

    return (dispatch) => { 
    const OPTIONS_POST_EXCEL = { 
     ...OPTIONS_POST, 
     headers: { 
     }, 
     body: dataToTransfer, 
    }; 

    return fetch('/api/excelstuff/upload', OPTIONS_POST_EXCEL) 
     .then((res) => { 
     // do stuff to dispatch 
     }) 
     .catch((err) => { 
     throw err; 
     }); 
    }; 
} 

后端是使用Spring的引导来实现,当它接收到FORMDATA,代码如下所示:

@RequestMapping(value="/upload", method = RequestMethod.POST, consumes = MediaType.MULTIPART_FORM_DATA_VALUE) 
public ResponseEntity<List<MyList>> uploadExcelFile(@RequestBody MultipartFile uploadedFile) { 
      log.warn("Is multipartfile empty? {}", uploadedFile); 
      return excelImporterService.uploadExcelFile(uploadedFile); 
     } 
    } 

当我将项目推送到CloudFoundry时,RequestBody为null。但在本地运行该项目它的工作原理!我正在基于TomCat Server运行应用程序。

我试过在我的gradle上编译compile('commons-fileupload:commons-fileupload:1.3.3')。并包括以下内容:

@Bean 
public MultipartResolver multipartResolver() { 
    CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver(); 
    commonsMultipartResolver.setMaxUploadSize(-1); 

    return commonsMultipartResolver; 
} 

我已经在我的配置中包括这个(YML文件)

spring: 
application: 
    name: somename 
http: 
    multipart: 
    enabled: false 

我希望这是一个普遍的问题,有人已经解决了这个问题很清楚,请帮忙!

回答

0

尝试将multipart/form-data作为内容类型添加到您的请求中。

祝你好运!

+0

试过了,它不起作用。添加它使本地主机失败:( –

相关问题