2010年12月9日 星期四

JSP 教學 - 檔案下載

關於檔案下載,以下就直接以一個範例來下載一個檔案

當然這只是個最簡單的範例,其餘應用就靠各位自己發揮吧

首先在 JSP 或 HTML 可以用一個連結或是 form 請求後進入後台處理

以下為我以 C 槽的檔案進行下載
package fsc.regLogIdent.controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class getFile extends HttpServlet
{
    public void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException
    {
        java.io.File file = new java.io.File("C:\\bike_up.jpg");  //建立需下載檔案的 File 物件
        long length = file.length();   //取出該檔案長度
        java.io.FileInputStream fi = new java.io.FileInputStream(file);   //建立該檔案的輸入串流
        //取得客戶端的輸出流, 這邊以 OutputStream 為輸入串流的物件
        java.io.OutputStream os = response.getOutputStream();   
        //設定 response 封包中的標頭
        response.setHeader("Content-Disposition", "attachment; filename=" + "bike_up.jpg"); 
        //設定欲下載檔案的 ContentType
        response.setContentType("image/jpeg");
        //設定該檔案的長度
        response.setHeader("Content_Length", Long.toString(length));
        int r = 0;
        //將檔案讀入 FileInputStream  並寫入 OutputStream
        while((r =  fi.read()) != -1)
        {
            os.write(r);
        }
        os.close();
        fi.close();
    } 
}

沒有留言:

張貼留言