小議jsp頁面中的下載功能(轉)

post0發表於2007-08-11
小議jsp頁面中的下載功能(轉)[@more@]

如果只是下在某個檔案的話,直接用超連線就可以搞定但是用超鏈不安全,誰都可以訪問,用程式當然好,可是把WEB不能訪問的目錄的檔案下載給經過認證的訪問者.

前面我寫過一個把圖片從資料庫取出來推向頁面的例子.

你只要把從資料庫取的資料來源改成從一個檔案讀到的資料來源,然後把文件頭

"image/gif"

改成"application/x-msdownload"就可以把一個向瀏覽器輸出一個檔案了.

File t_file = new java.io.File(sourceFilePathName);

long l = t_file.length(); //檔案長度

InputStream in = new FileInputStream (t_file);

if(in != null)

{

String fs = t_file.getName();

response.reset();

response.setContentType("application/x-msdownload"); //

String s = "attachment; filename="+fs; //

response.setHeader("Content-Disposition", s); //以上輸出檔案元資訊

response.setContentLength((int)l); //設定輸入檔案長度

byte[] b = new byte[2048];

int len = 0;

while({len=in.read(b)) >0);

{

response.getOutputStream().write(b,0,len); //向瀏覽器輸出

}

in.close(); //關閉檔案輸入流

}

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-946014/,如需轉載,請註明出處,否則將追究法律責任。

相關文章