<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Struts2.0文件上傳-文件尺寸問題

    Posted on 2007-10-31 17:18 puras 閱讀(5171) 評論(3)  編輯  收藏 所屬分類: Struts2.0

    近日在工作中一直使用Struts2.0,對它的了解也是逐漸的增多哦,嗯嗯,好事一件.不過,在使用中也遇到了一些問題,一般的基本都搞定了,只有一個,到現在也沒弄明白,實在不行,就得查看源代碼了......

    問題是這樣的:

    上傳文件,需要限制上傳文件的大小,這個可以在配置Action的interceptor來解決,只需設置一下maximumSize的值就可以了,我這里設置的是1048576(1M).

    如果我現在上傳一個大小為1.5M的文件,會報文件尺寸過大的錯誤,這個錯誤的顯示信息可以通過在全局的國際資源文件中配置:struts.messages.error.file.too.large.這時沒有什么問題.

    但只時我上傳一個大小為5M的文件,就會報一個

  • the request was rejected because its size (xxxxxx) exceeds the configured maximum (xxxxxx)的錯誤.而且我上傳頁面中原有的參數全部丟失.比如我修改一條記錄時傳到上傳頁面的ID值.(這里就是我沒搞明白的地方,數據為什么會丟)
  • 這里是因為Struts2.0默認的上傳文件的大小是2M.如果上傳超過這個大小的就會報錯.可以通過在struts.xml中修改默認的上傳文件大小:<constant name="struts.multipart.maxSize" value="5242880" />,我在這里設置成了5M,允許上傳5M的文件.

    如果用戶上傳的文件,超過了在Action中Iterceptor中的大小,而小于Struts.xml文件中設置的大小,一切正常;一旦上傳的文件超過了Struts.xml文件中設置的大小,問題就出現了,雖然也能正常的返回上傳頁,但數據丟失......這個受不了啊

    哪位高人也遇到過這種問題,并且解決了,不妨告訴小弟一下,^_^,小弟這里先謝謝了....

    PS:暫時將Struts.xml中設置了1G,如果用戶要上傳再大的文件,那也沒辦法了,抓緊時間搞定它....唉.

    Feedback

    # re: Struts2.0文件上傳-文件尺寸問題[未登錄]  回復  更多評論   

    2007-10-31 23:29 by jezz
    我也遇到了,我做的批量上傳,好象只能設置它總共上傳的大小,不能設置每個上傳的大小!而且很大也不報錯,只在控制臺報錯!

    # re: Struts2.0文件上傳-文件尺寸問題  回復  更多評論   

    2008-08-28 14:58 by 11
    這個問題搞定了沒?我也遇到了!

    # re: Struts2.0文件上傳-文件尺寸問題  回復  更多評論   

    2009-02-20 09:14 by 比爾
    套件中struts2-core-2.0.11.jar/org.apache/struts2/default.properties:
    ...
    #預設上傳檔案大小最大為2087152k,即2MB
    struts.multipart.maxSize=2097152
    ...

    以上預設值可在struts.xml覆寫掉:
    ex:
    <struts>
    <constant name="struts.multipart.maxSize"
    value="1048576000" />

    <action name="xxx" class="xxxAction"
    method="xxxMethod">
    <result name="xxx">/jsp/XXX.jsp</result>
    <result name="input">/jsp/OOO.jsp</result>

    <interceptor-ref name="fileUpload">
    <param name="maximumSize">5242880</param>
    <param name="allowedTypes">
    設mime-type</param>
    </interceptor-ref>
    <interceptor-ref name="defaultStack"></interceptor-ref>
    </action>
    </struts>
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    其中<constant name="struts.multipart.maxSize"
    value="1048576000" />設的是所有檔案的大小上限

    而,
    <action>
    <interceptor-ref name="fileUpload">
    <param name="maximumSize">5242880</param>
    </interceptor-ref>
    </action>
    因為每個上傳檔案都會被攔截器攔截
    ,所以設的是單一檔案大小

    當有exception時,如果action繼承至ActionSupport,
    則會forward到input,所以要配置:
    <result name="input">/jsp/OOO.jsp</result>

    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

    <struts>
    <package name="res" namespace="/" extends="struts-default">
    </struts>
    則會繼承套件中struts2-core-2.0.11.jar
    的struts-default.xml(裡面有一個package就是struts-default),
    fileUpload就是其中的一個interceptor,被包覆在defaultStack
    因為action有指定interceptor(為fileUpload),
    所以並不會像預設就會有defaultStack的interceptor(只會有指定的intercpeptor)

    為了讓該action可以有其預設的其它攔截器,所以要再加default的其它攔截器:
    <interceptor-ref name="defaultStack"></interceptor-ref>

    posts - 47, comments - 124, trackbacks - 0, articles - 0

    Copyright © puras

    主站蜘蛛池模板: 亚洲av日韩av综合| 亚洲无成人网77777| 免费国产在线精品一区| 韩国二级毛片免费播放| 精品国产日韩亚洲一区91| 四虎影视永久免费视频观看| 亚洲avav天堂av在线网毛片| 国产jizzjizz免费看jizz| 日日狠狠久久偷偷色综合免费| 亚洲国产一区二区三区| 香蕉免费在线视频| 亚洲无线电影官网| 亚洲免费黄色网址| 亚洲AV无码片一区二区三区| 亚洲Av无码国产情品久久 | 亚洲日韩中文在线精品第一| 九九热久久免费视频| 亚洲成A人片在线观看WWW| 91免费福利精品国产| 亚洲国产精品乱码在线观看97| 成人无遮挡裸免费视频在线观看 | 中国人免费观看高清在线观看二区| 亚洲精品午夜无码电影网| 最近免费字幕中文大全视频| 亚洲综合伊人制服丝袜美腿| 国产成人涩涩涩视频在线观看免费| 一级**爱片免费视频| 久久久无码精品亚洲日韩京东传媒| 免费精品国偷自产在线在线| 精品视频免费在线| 久久噜噜噜久久亚洲va久| 青草草色A免费观看在线| 香港经典a毛片免费观看看| 国产亚洲美女精品久久久久狼| 免费A级毛片无码无遮挡内射| 朝桐光亚洲专区在线中文字幕| 亚洲中文字幕久久精品无码APP| 91九色老熟女免费资源站| 在线观看亚洲专区| 综合自拍亚洲综合图不卡区| 国产又大又粗又硬又长免费|