我在websphere 8.5.5上部署了一个Web应用程序,我想上传一个巨大的文件(~3 GB)但我的问题是内容长度是null
in -case文件大小超过(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 !
答案 0 :(得分:5)
如果内容长度大于2GB,这是WAS 8.5.5的一个小问题httpRequest.getContentLength()将按预期返回-1但httpRequest.getHeader(" Content-Length")将返回空。
通过支持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/2015/10/17/websphere-application-server-v9-beta/
在8.5.5中,您可以通过将内容长度设置为查询参数或将其包含在请求的路径信息中来解决此问题。或者,如果您有支持,可以联系IBM服务部门以打开PMR并请求修复。