struts2實現檔案上傳

2021-09-01 17:41:42 字數 1232 閱讀 7092

研究了兩天終於搞定了,之前一直想著怎麼能將檔案上傳到eclipse中專案的webcontent目錄下,然後在別的頁面將上傳的開啟,之前一直被絕對路徑所誤導,

取得路徑的方式:

string realpath = servletactioncontext.getrequest().getrealpath(

"file"

); 

但是在控制台輸出的時候卻是:

我就被這迷惑了,然後就一心想著怎麼把這路徑存到資料庫,然後在別的頁面上通過絕對路徑來取得剛上傳的檔案,弄了一天沒搞明白,搜了很多資料也沒有徹底理解,今天晚上就想啊怎麼解決呢,就試了一下使用相對路徑來取,

在上傳的時候將檔案的路徑存成相對路徑的形式:

string path = "";  

// 設定上傳檔案目錄(其實這裡設定的就是相對目錄,只不過輸出的絕對路徑其實是tomcat部署之後的路徑,總之完全可以當做相對路徑來理解就對了)  

string uploadpath = servletactioncontext.getservletcontext()  

.getrealpath("/image");  

// 設定目標檔案  

if(!"".equals(this.getimagefilename())&& this.getimagefilename() != null)

fileutils.copyfile(image, tofile);

//往資料庫中存入相對路徑

path = "../image/"+this.getimagefilename();

}//        path = path.replaceall("\\\\", "\\\\\\\\")  ;

sqleditedtjsjdao dao=new sqleditedtjsjdao();

dao.edit(id,path,title,author,p_date,company,content);

然後在頁面上顯示的時候完全就可以取得資料庫裡的路徑直接用就可以了:

至於為什麼每次重啟tomcat上傳的檔案都會消失,原因是因為從eclipse啟動tomcat的時候會將tomcat之前部署的檔案先刪除再部署,所以之前上傳的檔案就丟失了,如果不通過eclipse就可以了。

eclipse執行tomcat是為了方便開發的。它預設是建立乙個臨時空間來執行專案的。並且隨時保持於eclipse中專案的同步的。你如果直接將專案打成war包放在tomcat下的話,就不會有這樣的問題了

Struts2實現上傳檔案

需用到兩個包 commons io 2.0.1.jar commons fileupload 1.3.jar form表單必須加enctype multipart form data 屬性 struts2核心配置檔案 upload.jsp 後台實現上傳模組 這三個屬性必須有 接收前台傳來的檔案 pr...

struts2實現檔案上傳 一

實現檔案上傳的表單中必須要的屬性如下 而用於處理該表單的action 如下 其中的file與表單中的檔案域的name熟悉必須一致,另外檔案的兩個隱藏屬性filename和contenttype的字首必須和file的名字相同,即,如果檔名為 則相應有 filename和 contenttype 其實名...

使用Struts2標籤實現檔案上傳

第一步 jsp頁面中 taglib prefix s uri struts tags tr td td tdclass admin righe td s file theme name myfile s file td tr 注意 theme 實現 和上傳檔案部分不換行。此外,注意form中,met...