<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

    主站蜘蛛池模板: 亚洲午夜无码久久久久软件| 18亚洲男同志videos网站| 亚洲av无码专区在线观看亚| 久久99九九国产免费看小说| 亚洲天堂2016| 国产网站免费观看| 黄网站在线播放视频免费观看| 亚洲国产免费综合| 国产精品美女久久久免费| 亚洲综合色自拍一区| 人人揉揉香蕉大免费不卡| 亚洲午夜久久影院| 97在线线免费观看视频在线观看| 亚洲日本成本人观看| www国产亚洲精品久久久| 亚洲免费一区二区| 亚洲国产精品久久久久网站 | 国产成人免费在线| 99999久久久久久亚洲| 国产乱弄免费视频| 最新国产乱人伦偷精品免费网站| 亚洲福利电影一区二区?| 妞干网免费观看视频| 国产激情久久久久影院老熟女免费 | 亚洲欧美日韩一区二区三区 | caoporn成人免费公开| 亚洲一区二区在线免费观看| 日本精品人妻无码免费大全| 特级做a爰片毛片免费看| 亚洲AV成人一区二区三区AV| 最近最好的中文字幕2019免费| 色老头综合免费视频| 亚洲精品日韩专区silk| 国产精品无码一二区免费 | 亚洲精品国产免费| 污网站在线观看免费| 亚洲一区二区三区高清| 免费一区二区视频| 亚洲香蕉免费有线视频| 无码 免费 国产在线观看91| 亚洲成a人片在线观|