struts2檔案上傳

2021-08-29 04:42:55 字數 1814 閱讀 4112

檔案上傳的三種方案:

①、將上傳的檔案存放到資料庫,以二進位制的形式 oa系統 activity工作流框架

②、將檔案上傳到檔案伺服器(硬碟u足夠大)中

③、將檔案上傳到tomcat所在的普通的web伺服器

用struts上傳檔案要注意的事

1、我們用struts上傳檔案時,必須要的三個引數,然後給它提供set and get方法

private file file;    //變數名指的是jsp的name屬性,就是你要上傳的屬性

private string filecontenttype;

private string filefilename;

這個file變數名必須跟檔案選擇器的name名一樣

2、要注意真實路徑與虛擬路徑的區別

真實路徑:指的是自己電腦上存在的路徑,在自己電腦上能夠找得到

虛擬路徑:指的是自己電腦上找不到的路徑,在別人電腦上能夠找得到的

(我們在公司開發時,自己寫好的專案是打包給別人,放到linux主機上,所以我們在專案中定義乙個路徑,在自己的電腦上是找不到的,但在linux伺服器中是存在的)

**獲取linux下的上傳檔案所在的位置**

private string serverdir = "/uplaod";

private string getrealpath(string path)

string realpath = getrealpath(serverdir+"/"+filefilename);

//realpath 就是tomcat伺服器所在的位置下的檔案

3、fileutils.copyfile(file, new file(realpath));引數1:指的是本地檔案

引數2:指的是在伺服器生成的檔案

//1. 內容型別

response.setcontenttype(d.getmime());

//2. 設定響應頭

response.setheader("content-disposition","attachment;filename=" + filename);//檔名

/*** 將遠端的輸出到本地

* 資料來源inputstream:遠端 new file(realpath)

* 目的:輸出到本地的jsp response.getoutputstream

*/ fileutils.copyfile(new file(realpath), response.getoutputstream());

直接呼叫別人寫好的方法 fileutils.copyfile(),有侷限,這種方法上傳速度較慢,我們可以自己寫個方法,提高讀取速度

private void copystream(bufferedinputstream in, bufferedoutputstream out) 

in.close();

out.close();

} catch (ioexception e)

}//然後呼叫我們自己寫的方法

public string download() catch (ioexception e)

return null;

}

struts2 檔案上傳

這些天做專案,遇到struts2 檔案上傳的問題,過程曲折。雖然網上有好多資料,但是自己還是在整理一下,總結自己走的彎路,說說容易出錯的地方 1 jsp 在類似上面的jsp中中的 method post 和 enctype multipart form data 必不可少。所以類似 這樣的直接url...

STRUTS2 檔案上傳

步驟 1 在jsp頁面的form的enctye設訂為multipart form data 2 action中定義與提交jsp頁面元素相同的file變數,對應的兩個變數 名稱和檔案型別,struts2規定是在file變數名非別加 contenttype 和 name public string ex...

Struts2檔案上傳

檔案上jsp的時候使用的是smartupload struts2有自己檔案上傳的jar commons io.jar commons fileuplod.jar 如果你使用的是myeclipse匯入的struts2jar包就不要關係這兩個jar是否匯入。使用struts2上傳步驟 1.在上傳的jsp...