在我的项目中使用文件上传:
<s:form id="uploadData" action="UploadAction" namespace="xyz" validateFields="false" method="post" enctype="multipart/form-data">
但是request.getContentLength()方法返回小于2 gb的正确值和0以上的任何值。
可能的原因是 content-length的数据类型为int。有没有其他方法可以将请求参数:content-length转换为long类型 为了支持大于2GB的上传。
请指导我们如何将内容长度请求标头转换为long以支持大于2gb的文件上传
答案 0 :(得分:1)
这是因为Servlet API中的getContentLength()方法定义为int
。实际上,对于大于2gb的文件(请求),它应该返回-1
。
如果您正在使用Servlet API 3.1(例如Tomcat 8),则可以使用getContentLengthLong()方法。