【问题标题】:Limit Struts2 file upload max size without uploading the whole file限制Struts2文件上传最大大小而不上传整个文件
【发布时间】:2011-01-27 20:13:54
【问题描述】:

我正在尝试在 JSP/Struts2 中实现文件上传,但我注意到了一个奇怪的行为。 我在 struts.xml 中以这种方式声明了我的操作,以将文件大小限制为 1MB

<action name="massInsert" class="massInsertAction">
    <interceptor-ref name="fileUpload">
        <param name="allowedTypes">
             image/png,image/gif,image/jpeg
        </param>
        <param name="maximumSize">1000000</param>
    </interceptor-ref>
    <interceptor-ref name="defaultStack"/>

    <result name="success">/WEB-INF/jsp/massInsert/massInsert.jsp</result>
    <result name="validationError">/WEB-INF/jsp/massInsert/massInsert.jsp</result>
</action>

它工作得很好,非图像文件和超过 1MB 的图像会引发错误。 唯一的问题是,太大的文件在被删除之前已经完全上传到服务器临时文件夹中。

有没有办法在达到限制后立即停止上传?

编辑: Quaternion 的解决方案有效,当请求超过以下行设置的最大值时,将引发错误并且一切都停止。没有文件写入磁盘

<constant name="struts.multipart.maxSize" value="1000000" />

【问题讨论】:

    标签: java upload struts2 max


    【解决方案1】:

    有两个文件大小参数,一个与单个文件大小有关,另一个与最大多部分文件大小有关。这是因为您可以根据需要接收文件数组(只需将 setter 类型从 File 更改为 File[],非常简单),例如 struts.multipart.maxSize 设置为 10MB 并且文件大小 (ma​​ximumSize) 设置为 1 MB,您应该能够接收 10 个 1MB 文件。所以应该允许缓冲区增长到 10 MB。

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE struts PUBLIC 
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
        "http://struts.apache.org/dtds/struts-2.0.dtd">
    <struts>
        <constant name="struts.multipart.maxSize" value="1000000" />
    
        <action name="doUpload" class="com.example.UploadAction">
        <interceptor-ref name="basicStack"/>
        <interceptor-ref name="fileUpload">
            <param name="maximumSize">500000</param>
        </interceptor-ref> 
        <interceptor-ref name="validation"/>
        <interceptor-ref name="workflow"/>
    
        <result name="success">good_result.jsp</result>
        </action>
    </struts>
    

    来源:https://cwiki.apache.org/confluence/display/WW/File+Upload#FileUpload-FileSizeLimits

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-29
      • 2017-03-09
      • 2011-01-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多