當前位置:首頁 » 文件管理 » struts2文件上傳最大

struts2文件上傳最大

發布時間: 2023-09-13 16:35:24

㈠ 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設置整個表單請求內容的最大位元組數。

㈡ action2上傳不到視頻

action2上傳不到視頻
你可以設置struts2上傳文件的最大值。。struts2默認上傳文件的最大值是。。
今天使用struts2的文件上傳控制項時,在struts.xml中,將處理上傳的action中的fileupload攔截器的maximumsize參數設置為5000000,上傳了一個3m的文件後發現控制台報錯,而且提示說文件超過2m。struts.xml相關配置如下:
/fileuploadresult.jsp /fileupload.jsp 500000 application/vnd.ms-powerpoint
後來嘗試在struts.xml中加入
發現一切正常了,不報錯了。功能也正常了。
發現struts.multipart.maxsize和fileupload攔截器的maximumsize屬性分工不同,總結如下:
1.struts.multipart.maxsize掌控整個項目所上傳文件的最大的size。超過了這個size,後台報錯,程序處理不了如此大的文件。fielderror裡面會有如下的提示:
the request was rejected because its size (16272982) exceeds the configured maximum (9000000)
2.fileupload攔截器的maximumsize屬性必須小於struts.multipart.maxsize的值。
struts.multipart.maxsize默認2m,當maximumsize大於2m時,必須設置struts.multipart.ma

㈢ struts2 文件上傳限制大小限制

據我所知,這個應該是伺服器上做了限制,如果用2003+iis6.0的話默認情況下是最大2M

㈣ 使用struts2如何實現文件上傳

  1. 新建Web Project,在WebRoot下新建upload文件夾

  2. 在WebRoot下新建upload.jsp,上傳界面

  3. 編寫上傳成功、失敗的提示界面。

  4. 在WebRoot下新建uploadError.jsp

  5. 在WebRoot下新建uploadSuccess.jsp

  6. 編寫Action類

  7. 配置struts.xml文件,重置fileUpload攔截器。

  8. 測試,測試完成之後在tomcat下面webapps目錄下找到項目對應的文件夾下的upload下查看

㈤ struts2.0怎麼實現上傳文件

一、創建jsp頁面:
注意!要上傳文件,表單必須添加 enctype 屬性,如下: enctype="multipart/form-data"
index.jsp 代碼如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 注意!表單必須添加 enctype 屬性,值為"multipart/form-data" -->
<form action="upload.action" method="post" enctype="multipart/form-data">
<input type="file" name="file" />
<input type="submit" value="上傳"/>
</form>
</body>
</html>

二、創建Action類:
1. 添加三個私有欄位,並添加相應的get,set方法。
private File file; ——上傳的文件,變數名對應頁面上"file"input的name屬性值。類型為java.io.File
private String fileContentType;——上傳文件的格式類型名,變數名格式為:頁面上"file"input的name屬性值+ContentType
private String fileFileName——上傳的文件名,變數名格式為:頁面上"file"input的name屬性值+fileFileName。
2. 使用struts2提供的FileUtils類拷貝進行文件的拷貝。FileUtils類位於org.apache.commons.io包下。
3. 在項目目錄下的WebContent目錄下添加 upload 文件夾,用於存放客戶端上傳過來的文件,對應第15行代碼。
Upload.java代碼如下:

1 import java.io.File;
2 import java.io.IOException;
3 import org.apache.commons.io.FileUtils;
4 import org.apache.struts2.ServletActionContext;
5 import com.opensymphony.xwork2.ActionSupport;
6
7 public class Upload extends ActionSupport{
8 private File file;
9 private String fileContentType;
10 private String fileFileName;
11
12 @Override
13 public String execute() throws Exception {
14 //得到上傳文件在伺服器的路徑加文件名
15 String target=ServletActionContext.getServletContext().getRealPath("/upload/"+fileFileName);
16 //獲得上傳的文件
17 File targetFile=new File(target);
18 //通過struts2提供的FileUtils類拷貝
19 try {
20 FileUtils.File(file, targetFile);
21 } catch (IOException e) {
22 e.printStackTrace();
23 }
24 return SUCCESS;
25 }
26
27 //省略get,set方法...........
28
29 }

三、在struts.xml中添加相應的配置代碼。
struts.xml代碼如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
<package name="default" namespace="/" extends="struts-default">
<action name="upload" class="Upload">
<result>index.jsp</result>
</action>
</package>
</struts>

四、測試。
啟動伺服器,進入index頁面。

選擇一改圖片,點擊上傳提交表單。

打開upload文件夾(注意,這里指的是web伺服器下的目錄,如我用的web伺服器是tomcat安裝在電腦D盤,項目名稱為「Struts2Upload」那麼其路徑為:D:\apache-tomcat-7.0.40\webapps\Struts2Upload\upload)可以看到剛才選中的圖片已經上傳到該目錄下了。

上傳多個文件
一、修改頁面文件
增加繼續添加按鈕和 addfile() 方法,讓頁面可以通過javascript增加 input 標簽。
修改後的 index.jsp代碼如下:

1 <%@ page language="java" contentType="text/html; charset=UTF-8"
2 pageEncoding="UTF-8"%>
3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
4 <html>
5 <head>
6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
7 <script type="text/javascript">
8 //添加javascript方法 addfile() 在頁面中境加input標簽、
9 function addfile(){
10 var file = document.createElement("input");
11 file.type="file";
12 file.name="file";
13 document.getElementById("fileList").appendChild(file);
14 document.getElementById("fileList").appendChild(document.createElement("br"));
15 }
16 </script>
17 <title>Insert title here</title>
18 </head>
19 <body>
20 <!-- 注意!表單必須添加 enctype 屬性,值為"multipart/form-data" -->
21 <form action="upload.action" method="post" enctype="multipart/form-data">
22 <div id="fileList">
23 <input type="file" name="file" /><br/>
24 </div>
25 <!-- 添加繼續添加按鈕,點擊按鈕調用addfile() -->
26 <input type="button" value="繼續添加" onclick="addfile()" />
27 <input type="submit" value="上傳"/>
28 </form>
29 </body>
30 </html>

二、修改Action類
1. 把三個私有欄位(file,fileContentType,fileFileName)的類型更改為數組或集合類型。並添加相應的get,set方法。
2. 通過循環來上傳多個文件。
修改後的Upload.java代碼如下:

import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class Upload extends ActionSupport{
//把這三個欄位類型更改為數組或集合
private File[] file;
private String[] fileContentType;
private String[] fileFileName;

@Override
public String execute() throws Exception {
//通過循環來上傳多個文件
for(int i=0;i<file.length;i++){
//得到上傳文件在伺服器的路徑加文件名
String target=ServletActionContext.getServletContext().getRealPath("/upload/"+fileFileName[i]);
//獲得上傳的文件
File targetFile=new File(target);
//通過struts2提供的FileUtils類拷貝
try {
FileUtils.File(file[i], targetFile);
} catch (IOException e) {
e.printStackTrace();
}
}
return SUCCESS;

}

//省略set,get方法...................

}

三、測試
1. 啟動伺服器,打開index.jsp頁面。點擊繼續添加,添加兩個input。同時上傳三張圖片。

2. 點擊上傳提交表單。打開upload文件夾,可以看到剛才選中的三張圖片已經上傳到該目錄下了。

參考資料http://www.cnblogs.com/likailan/p/3330465.html

㈥ struts2中,文件上傳和下載時候的緩沖區大小多少合適如題 謝謝了

文件通常默認是15MB的允許最大上傳的文件,緩沖其實設為4096K就好了。和文件大小沒關系。只跟網速度有關,設大了也沒用。

熱點內容
apk反編譯入門 發布:2025-01-25 01:26:43 瀏覽:472
英雄聯盟在哪投訴腳本 發布:2025-01-25 01:26:43 瀏覽:314
php在線統計 發布:2025-01-25 01:26:42 瀏覽:65
手機加密室 發布:2025-01-25 01:25:57 瀏覽:219
搭建excel伺服器 發布:2025-01-25 01:25:19 瀏覽:1000
雙系統win7和linux 發布:2025-01-25 01:25:19 瀏覽:606
為什麼蘋果手機攝像比安卓好 發布:2025-01-25 01:06:48 瀏覽:787
linux查看系統多少位 發布:2025-01-25 01:04:31 瀏覽:121
雲伺服器體驗香港虛擬主機空間 發布:2025-01-25 00:51:19 瀏覽:812
空氣能膨脹罐如何配置 發布:2025-01-25 00:50:33 瀏覽:312