檔案上傳的三種方案:
①、將上傳的檔案存放到資料庫,以二進位制的形式 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...