Http協議(下載)

public class DownServlet extends HttpServlet {

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {

        resp.setContentType("application/force-download");//協議設置1

        String fileName = "1.jpg";
        InputStream fin = DownServlet.class.getClassLoader().getResourceAsStream(fileName);

        fileName = "我的圖片.jpg";
        fileName = URLEncoder.encode(fileName,"UTF-8");//如果不編碼,瀏覽器中顯示的文件名是亂碼
        resp.setHeader("Content-Disposition","attachment;filename=\""+fileName+"\"");//協議設置2 ---告訴瀏覽器,當前所下載文件的文件名

        //FileInputStream fin = new FileInputStream(fileName);

        OutputStream out = resp.getOutputStream();
        byte buf[] = new byte[512];
        int len=0;
        while( (len=fin.read(buf))!=-1){
            out.write(buf, 0, len);
        }   
    }
}

注意上例中圖片1.jpg的存放位置是在src目錄下的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章