struts2上傳大文件上傳
A. Struts2 上傳文件過大問題
struts2文件上傳有個默認的攔截器叫做fileUpload,對應的攔截器類名稱為org.apache.struts2.interceptor.FileUploadInterceptor你可以在default.properties文件中配置struts.multipart.maxSize項為你想要的大小.默認即2097152,即2M(2097152/1024/1024);
B. 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設置整個表單請求內容的最大位元組數。
C. 使用struts2如何實現文件上傳
新建Web Project,在WebRoot下新建upload文件夾
在WebRoot下新建upload.jsp,上傳界面
編寫上傳成功、失敗的提示界面。
在WebRoot下新建uploadError.jsp
在WebRoot下新建uploadSuccess.jsp
編寫Action類
配置struts.xml文件,重置fileUpload攔截器。
測試,測試完成之後在tomcat下面webapps目錄下找到項目對應的文件夾下的upload下查看
D. struts 2.x 文件上傳,允許上傳大小限制問題
很簡單,在Action配置中添加如下內容
<action name="" class="">
<interceptor-ref name="defaultStack">
<param name="fileUpload.maximumSize">102400</param><!--大小限制為100KB-->
</interceptor-ref>
</action>
E. struts2文件上傳
引入commons-fileupload 的jar包,頁面標簽是file類型。後台直接按前台標簽的名字按流讀取就行了。跟普通的上傳下載沒區別。
F. SSH框架,利用Struts2上傳大文件的問題
只能上傳文本文件及照片等小文件,過大就報錯
G. struts2中關於文件上傳的配置
MIME類型。text/plain表示文本類型
H. Struts2 多文件上傳,高手請進!!
首先,你要知道怎麼在action是區分文件。struts2可以同時上傳多文件,action接收到的是一個File list,如果你要區分只能從文件的contentType進行差別,但不同瀏覽器對同一種文件類型的contentType有可能不同。所以,你要知道不同瀏覽器對文件的contentType。
最後,就是在action里得到得到文件的contentType進行判斷,對不同的文件進行不同處理就行了。
當然你也可以用文件的後綴進行判斷,不過不推薦使用後綴進行文件類型的判斷
I. 關於struts2框架的文件上傳問題。。。上傳的文件超過2MB就報下面的異常,請問怎麼解決
在struts.xml中設置
<constant name="struts.multipart.maxSize" value="314572800"></constant> <!-- 允許300M -->
可以允許上傳300M的呢!我試了下,上傳了個202M的電影,竟然上傳成功了!
J. struts2 如何動態限制文件上傳大小
1 配置好struts的上傳文件限制大小是不能修改的,這個是所有上傳文件都必須接受的物理限制,當然,根據需要你可以把這個值設大點 2 用戶可以配置的值必須在程序中控制,也就是說有你要保存一個配置項(例如:可以保存在資料庫中),用戶可以去修改這個,修改時更新資料庫就行了。 3 用戶上傳文件時,需要判斷文件大小是否超過資料庫中這個配置項,超過了的話就不會進行後面的上傳行為了,對用戶返回錯誤信息。