小議jsp頁面中的下載技巧
發(fā)表時間:2024-06-16 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]如果只是下在某個文件的話,直接用超連接就可以搞定但是用超鏈不安全,誰都可以訪問,用程序當然好,可是把WEB不能訪問的目錄的文件下載給經(jīng)過認證的訪問者.前面我寫過一個把圖片從數(shù)據(jù)庫取出來推向頁面的例子.你只要把從數(shù)據(jù)庫取的數(shù)據(jù)源改成從一個文件讀到的數(shù)據(jù)源,然后把文檔頭"image/gif&...
如果只是下在某個文件的話,直接用超連接就可以搞定但是用超鏈不安全,誰都可以訪問,用程序當然好,可是把WEB不能訪問的目錄的文件下載給經(jīng)過認證的訪問者.
前面我寫過一個把圖片從數(shù)據(jù)庫取出來推向頁面的例子.
你只要把從數(shù)據(jù)庫取的數(shù)據(jù)源改成從一個文件讀到的數(shù)據(jù)源,然后把文檔頭
"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); //設(shè)置輸入文件長度
byte[] b = new byte[2048];
int len = 0;
while({len=in.read(b)) >0);
{
response.getOutputStream().write(b,0,len); //向瀏覽器輸出\r
}
in.close(); //關(guān)閉文件輸入流\r
}