将大文件(> 2GB)上传到websphere

Ahm*_*rdi 2 java websphere web-applications file java-ee

我在websphere 8.5.5上部署了一个Web应用程序,我想上传一个巨大的文件(~3 GB),但我的问题是内容长度null文件大小超过(2GB)的情况,尽管当我在tomcat上部署了相同的应用程序,一切都按预期工作.

HttpServletRequest httpRequest = (HttpServletRequest) request;
    ServletFileUpload sfu = new ServletFileUpload(new DiskFileItemFactory());

    sfu.setSizeMax(-1);
    httpRequest.getHeader(FileUploadBase.CONTENT_LENGTH); //This returns null for huge files !
Run Code Online (Sandbox Code Playgroud)

小智 5

这是WAS 8.5.5的一个小问题,如果内容长度大于2GB,httpRequest.getContentLength()将按预期返回-1,但httpRequest.getHeader("Content-Length")将返回null.

通过支持Servlet 3.1解决了这个问题,Servlet 3.1已添加到WebSphere Application Server Liberty概要文件8.5.5.4中,并且也可以在此处提供的WebSphere Application Sever V9 beta中解决:https://developer.ibm.com/wasdev/blog/十分之二千零十五/ 17/WebSphere的应用服务器-V9-β/

在8.5.5中,您可以通过将内容长度设置为查询参数或将其包含在请求的路径信息中来解决此问题.或者,如果您有支持,可以联系IBM服务部门以打开PMR并请求修复.