當前位置:首頁 » 文件管理 » struts2上傳路徑問題

struts2上傳路徑問題

發布時間: 2022-12-21 07:38:15

A. 為什麼struts2上傳文件自動保存到tomcat下,如何更改成自定義路徑

1:上傳的路徑是可以自定義的
2:上傳需要的jar包:
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
3:直接上主要代碼:
(1)jsp頁面:
<form action="./user/upload.action" method="post" enctype="multipart/form-data">
上傳文件:<input type="file" name="upload"><br>
<input type="submit" value="上傳">
</form>
(2)struts配置:
<package name="example" namespace="/user" extends="struts-default">
<action name="upload" class="com.struts2.action.UploadAction" method="upload">
<result name="success" type="dispatcher">/example/success.jsp</result>
</action>
</package>
(3)java代碼:
public class UploadAction {
private File upload;
private String uploadFileName ; //格式 <input name="upload"> + FileName ;
private String uploadContentType ; //格式<input name="upload"> + ContentType ;
public String getUploadContentType() {
return uploadContentType;
}
public void setUploadContentType(String uploadContentType) {
this.uploadContentType = uploadContentType;
}
public String getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
}
public File getUpload() {
return upload;
}
public void setUpload(File upload) {
this.upload = upload;
}
public String upload() throws Exception {
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(upload));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("D:/temp/"+uploadFileName));
byte[] b = new byte[1024*1024];
int i = bis.read(b);
while(i!=-1){
bos.write(b,0,i);
i = bis.read(b);
}
bos.flush();
bis.close();
bos.close();
return "success" ;
}

B. struts2批量上傳文件提示以下異常

struts.multipart.saveDir沒有配置。
struts.multipart.saveDir用於指定存放臨時文件的文件夾
於是在,struts.xml配置文件中增加如下:
<constant
name="struts.multipart.saveDir"
value="/tmp"/>
設置臨時文件上傳路徑。

C. struts 2 上傳文件時,怎麼樣讓它的默認路徑是WebContent工程下的目錄

你這樣寫是沒錯的,只是用eclipse開發時,eclipse會自己產生一個暫時目錄將你的web項目發布到該暫時目錄下。你可以看下那個暫時目錄,結構和你的工程目錄是一樣的。
eclipse的工作目錄和測試用的目錄是不一樣的

D. struts2中上傳文件時報404錯誤

如果說配置文件欄位名都沒有錯的話那就是說你的上傳的文件超過了4M,而fileupload默認的上傳限度為4M!如果沒有跟改配置的話那就會拋出異常!而在struts2中則是返回為input!而你又在struts.xml中沒有配置<result name = "input">/test.jsp</result>所以為出現404!如果先要根治的話!你需要在配置文件中配置一下<constant name="struts.multipart.maxSize" value="20480000"/>
value的值你可以看著設!最大限度是2G

E. struts2 文件上傳怎麼指定保存文件的路徑和大小

在action配置文件struts.xml里設置(如下):
<package name="upload" extends="struts-default">
<action name="upload" class="">
<!--配置fieldUpload攔截器--->
<interceptor-ref name="fileUpoad">
<param name="allowedTypes">image/bmp,image/png,image/jpg,image/gif</param>
<param name="maximumSize">200000</param>
</interceptor-ref>
<!---必須顯示配置引用struts默認的攔截器棧:defaultStack----->
<interceptor name="defaultStack"></interceptor>
<!---設置上傳路徑----->
<param name="savePath">/upload</param>
<result name="success">/upload_succ.jsp</result>
<result name="input">/upload.jsp</result>
</action>
</package>
希望能幫到你哈....

F. struts2在linux下上傳文件路徑的問題

很有可能是許可權不對吧, 那個目錄是任何人都可以讀寫嗎? chmod 777 **/tomcat/webapps/soft 這樣試試,看行不行

G. struts2上傳問題!用struts2上傳圖片到d盤test文件夾下!然後運行頁面顯示!怎樣寫這圖片路勁

把保存文件的File類參數換成絕對路徑.

如果不明白,請上你現在的代碼

H. struts2 文件上傳路徑錯誤 ERROR [STDERR] java.io.FileNotFoundException:

這個可能就是你的Struts2的配置路徑的原因了,你在struts.xml中配置這個Struts的路徑的時候,可能多加了一個「.」,因此在路徑中才會有「.」出現的原因吧,所以你檢查一下你的配置文件看看

I. struts2上傳圖片到linux伺服器,成功上傳文件,無法返迴路徑,報錯: net::ERR_CONTENT_LENGTH_MISMATCH

因為windows和linux系統的文件路徑分割符是不一樣的。一個是「/」一個是「\」,所以換了環境當熱會錯。java中有一個方法叫做File.separator可以得到是運行環境下的分隔符,你需要在代碼中做出修改。將文件路徑拆開後然後使用 File.separator拼接。

J. struts2怎麼改變文件上傳地址

所謂上傳,其實就是文件的拷貝,涉及到流的讀寫,上傳的路徑可以自己定義的,另外struts2可以在struts.xml中定義臨時存儲上傳文件的路徑,如下:
<!-- 系統常量定義,定義上傳文件臨時存放路徑 -->
<constant name="struts.multipart.saveDir" value="d:\"></constant>
至於文件上傳的路徑,一般是獲取到的上下文路徑,當然也可以是別的,如下:
//上傳文件存放路徑,如果不存在,可以創建
private final static String UPLOADDIR = "/upload";
//執行上傳功能
private void uploadFile(int i) throws FileNotFoundException, IOException {
try {
InputStream in = new FileInputStream(file.get(i));
//獲取上下文路徑
String dir = ServletActionContext.getRequest().getRealPath(UPLOADDIR);
//寫文件
File uploadFile = new File(dir, this.getFileFileName().get(i));
OutputStream out = new FileOutputStream(uploadFile);
byte[] buffer = new byte[1024 * 1024];
int length;
while ((length = in.read(buffer)) > 0) {
out.write(buffer, 0, length);
}
in.close();
out.close();
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
最後,在struts.xml中添加
<!-- 系統常量定義,定義上傳文件字元編碼集 -->
<constant name="struts.i18n.encoding" value="gb2312"></constant>
避免編碼出現問題,另外還有文件大小、類型等等限制,網上有好多例子,可以參考一下,不知道這些對你有沒有用

熱點內容
易語言gdi源碼 發布:2025-08-18 13:06:05 瀏覽:781
iphone5s軟體緩存 發布:2025-08-18 12:39:37 瀏覽:148
QQ推薦上傳 發布:2025-08-18 12:38:51 瀏覽:860
qq忘記密保怎麼找回密碼 發布:2025-08-18 12:38:18 瀏覽:72
python字元串類型轉換 發布:2025-08-18 12:35:54 瀏覽:399
ofdm信道估計演算法 發布:2025-08-18 12:35:09 瀏覽:733
指數競猜源碼 發布:2025-08-18 12:29:26 瀏覽:698
天龍八部莫愁腳本官網 發布:2025-08-18 12:14:19 瀏覽:862
合資車為什麼配置不高 發布:2025-08-18 12:09:36 瀏覽:76
銀行的六位密碼有多少種組合 發布:2025-08-18 12:06:27 瀏覽:397