小議jsp頁面中的下載功能

來源:互聯網
上載者:User
js|下載|頁面 如果只是下在某個檔案的話,直接用超串連就可以搞定但是用超鏈不安全,誰都可以訪問,用程式當然好,可是把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); //向瀏覽器輸出\r
}
in.close(); //關閉檔案輸入資料流\r
}



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.