通过Zuul上传大文件

dvelopp:

我面对过zuul上传大文件的问题。我使用Apache的公共文件上传(https://commons.apache.org/proper/commons-fileupload/)以流大文件以及我用zuul在前面。在我的春节,启动应用程序我有Spring提供使用Apache的公地一个残疾人上传:

  spring:
      http:
          multipart:
              enabled: false

控制器看起来像这样:

public ResponseEntity insertFile(@PathVariable Long profileId, 
    HttpServletRequest request) throws Exception {
    ServletFileUpload upload = new ServletFileUpload();
    FileItemIterator uploadItemIterator = upload.getItemIterator(request);
    if (!uploadItemIterator.hasNext()) {
        throw new FileUploadException("FileItemIterator was empty"); 
    } 
    while (uploadItemIterator.hasNext()) {
        FileItemStream fileItemStream = uploadItemIterator.next();
        if (fileItemStream.isFormField()) {
            continue; 
        } 
       //do stuff 
    } 
    return new ResponseEntity(HttpStatus.OK);
} 

如果我直接访问我的应用程序(不zuul),如预期的文件上传作品。但是,如果它是通过zuul访问,FileItemIterator没有项目遍历并请求完成,错误马上(ERR_CONNECTION_RESET)。对于zuul我也给春季禁用多。否则,它的工作原理。然而,该文件不流。他们是完全只有经过我得到的控制器(普通的Spring行为)中加载。有没有办法使用Apache的公地流与zuul选项的方法是什么?

dvelopp:

我已经找到了解决办法。这基本上说明如下:

http://cloud.spring.io/spring-cloud-static/spring-cloud.html#_uploading_files_through_zuul

我做了什么,使其工作。只是一步一步:

  1. 绕过的Spring DispatcherServlet我改变的网址:

来源:HTTP://本地主机:8081 /为MyService /文件

要:HTTP://本地主机:8081 / zuul /为MyService /文件

  1. 春季多上传保存禁​​用:

    spring:
        http:
            multipart:
                enabled: false
    

不需要下面的头。传输编码:分块

我试着上传大文件没有一个,这是罚款。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章