如果只是下在某個文件的話,直接用超連接就可以搞定但是用超鏈不安全,誰都可以訪問,用程序當然好,可是把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 }
|