现在所有最新的浏览器,支持文件上传过程的 2 GB 大小限制,
现在我们在我们的应用程序中使用以下内容
Java, JSP, Struts 2.0 框架,我们无法上传2gb大小的文件,所以我在网上搜索,我能够找到struts中的
,我已将此值设置为 2gb 大小,我还在 tomcat struts.multipart.maxSize
属性配置。 xmlserver.xml
文件中设置了 maxPostSize
大小属性,以根据请求增加 postdata 大小。
我们仍然无法从浏览器上传 2gb 大小的文件。
请有人告诉我们,在 Apache 服务器、tomcat、struts 或浏览器中是否有可用的设置,然后让我们知道这些。
我们没有在文件上传操作中使用 fileUpload 拦截器
<action name="fileUpload" method="fileUpload" class="fileUploadAction">
<interceptor-ref name="check">
</interceptor-ref>
<result name="Errorjsp">tFrame.jsp</result>
<result name="insert">FileFrame.jsp</result>
</action>
并且我们的 java 端操作具有扁平的上传逻辑,在服务器端代码中没有文件大小限制验证。
我想知道大文件上传不上来的原因?
对于更多更新,我们发现在我们的环境中产生的问题是 CDN 网络。客户端通过浏览器请求将文件发送到cdn网络,然后cdn网络将这些文件发送到实际服务器。
问题仅在我们请求超过 2 GB 大小的文件时由于 cdn 网络而发生,因此它与浏览器问题无关。
问题不会发生在 cdn 网络上,当我们将文件字节到 block 发送到 cdn 网络时,意味着当我们使用一个 java 演示程序发送文件字节的 block 请求时。所以从这个分析中,我们可以说当我们以分块发送数据时,cdn 网络工作正常。
在我们的例子中,我们通过浏览器发送文件上传请求,所以我们不能发送分块请求,所以现在我的问题是,是否有任何技术或机制可用于解决我们的问题是否有可用的 js 或请求机制,哪个通过浏览器发送 block 字节请求?是否有任何其他技术可用于解决我们的问题?
感谢并问候 Yatin Baraiya
最佳答案
Struts2 允许您上传最大 2GB 的文件,即 maximum allowed size对于请求:
This setting defaults to approximately 2 megabytes and should be adjusted to the maximum size file (2 gigs max) that your will need the framework to receive.
为此,您需要同时设置:
设置通用
<constant name="struts.multipart.maxSize" value="2147483648" />
, 对于整体请求大小;为单个文件的最大大小设置 FileUpload Interceptor 参数,既可以在本地操作,也可以对包通用:
<interceptor-ref name="fileUpload"> <param name="maximumSize">2147483648</param> </interceptor-ref>
.2 是您配置中缺少的部分:目前,您可以发送 2 GB 的内容,但最大文件大小为 2 MB,例如。 1000 个文件,每个文件最大 2mb。
将上述设置应用于您的配置以使其工作,例如:
<action name="doUpload" class="com.example.UploadAction">
<interceptor-ref name="defaultStack">
<param name="fileUpload.maximumSize">2147483648</param>
</interceptor>
<result name="success">good_result.jsp</result>
</action>
关于java - 无法使用 struts 2.0 框架上传 2gb 大小的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24525825/