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,如果用戶要上傳再大的文件,那也沒辦法了,抓緊時間搞定它....唉.