struts2文件上傳類型限制
① struts2中限制上傳文件大小後錯誤信息的顯示
Struts2本身提供了一個文件上傳的攔截器,通過配置該攔截器可以更輕松地實現文件過濾。我們只需要在Action中配置該攔截器就可以了。當文件過濾失敗後,會自動轉向input邏輯視圖,因此必須為該Action配置名為input的邏輯視圖,除此之外還必須為配置defaultStack的攔截器的引用。配置文件如下:
<action name="upload" class="com.annlee.upload.UploadAction" >
<!-- 配置fileUpload的攔截器 -->
<interceptor-ref name="fileUpload">
<!-- 配置允許上傳的文件類型 -->
<param name="allowedTypes">image/bmp,image/gif,image/jpg</param>
<!-- 配置允許上傳的文件大小 -->
<param name="maximumSize">2000000</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
<param name="savePath">/</param>
<result>/common/succ.jsp</result>
<result name="input">/cos_fileupload/fileupload.jsp</result>
</action>
如果上傳失敗系統會返回到原來的頁面,要在原來的頁面上加上以下錯誤提示代碼:
<s:fielderror />這樣系統就會返回提示給用戶,但是這時的提示是Struts2自帶的提示,非常不友好,我們可以國際化資源里配置以下兩項,我們的提示就會自動替換Struts2的提示,提示的關鍵字如下
struts.messages.error.file.too.large
struts.messages.error.content.type.not.allowed
此外,如果用戶上傳失敗的原因不是因為以上兩種還有另外的一個信息提示用戶,它的關健字是:struts.messages.error.uploading,我們也應該替換這個提示信息。
其它說明:如果沒有指定臨時的保存文件夾,系統就會使用javax.servlet.context.tempdir路徑,這個路徑是Tomcat的work\Catalina\localhost\,我們應該設置自己的路徑,這個配置的屬性為struts.multipart.saveDir可以在struts.properties中配置,還有一個文件上傳的屬性:struts.multipart.maxSize設置整個表單請求內容的最大位元組數。
② struts2 文件上傳限制大小限制
據我所知,這個應該是伺服器上做了限制,如果用2003+iis6.0的話默認情況下是最大2M
③ struts2文件上傳有沒有最大限制
Struts2上傳文件的默認大小限制是2M(2097152位元組),也可以通過struts.properties文件中的struts.multipart.maxSize修改,如struts.multipart.maxSize=2048 表示一次上傳文件的總大小不能超過2K位元組。
struts2上傳非常方便了,沒聽說網上有很多上傳插件,上傳核心代碼在後台,看你怎麼獲取上傳的文件數據怎麼將數據再寫入到本地伺服器。
④ struts2文件上傳中,如何限制上傳的文件類型
只需要在struts配置文件中配置就OK了
案例如下:
<package name="upload" extends="struts-default" namespace="/upload">
<!-- 配置 -->
<action name="upload" class="www.ijava.com.UploadAction" >
<param name="savePath">e:/images/</param>
<!--往fileuploadInterceptor 注入 -->
<interceptor-ref name="defaultStack">
<!-- 改變當前文件運行上傳的類型 -->
<param name="fileUpload.allowedTypes">image/jpeg,image/jpg</param>
<!-- 允許的文件後綴 -->
<param name="fileUpload.allowedExtensions">jpg,jpeg,gif</param>
</interceptor-ref>
<result>/index.jsp</result>
</action>
⑤ struts2 文件的上傳和下載,怎麼控制上傳的文件類型啊
<interceptor-ref name="fileUpload">
<param name="allowedTypes">application/octet-stream,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-excel,application/msexcel</param>
<param name="maximumSize">10048576</param>
</interceptor-ref>
具體內容去struts教程網看看吧。
⑥ struts 2.x 文件上傳,允許上傳大小限制問題
很簡單,在Action配置中添加如下內容
<action name="" class="">
<interceptor-ref name="defaultStack">
<param name="fileUpload.maximumSize">102400</param><!--大小限制為100KB-->
</interceptor-ref>
</action>