<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    溫馨提示:您的每一次轉(zhuǎn)載,體現(xiàn)了我寫(xiě)此文的意義!!!煩請(qǐng)您在轉(zhuǎn)載時(shí)注明出處http://www.tkk7.com/sxyx2008/謝謝合作!!!

    雪山飛鵠

    溫馨提示:您的每一次轉(zhuǎn)載,體現(xiàn)了我寫(xiě)此文的意義!!!煩請(qǐng)您在轉(zhuǎn)載時(shí)注明出處http://www.tkk7.com/sxyx2008/謝謝合作!!!

    BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
      215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks
    package com.future.zfs.util;

    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    @SuppressWarnings(
    "serial")
    public class FileDownLoadServlet extends HttpServlet{
        
        @Override
        
    protected void service(HttpServletRequest request, HttpServletResponse response)
                
    throws ServletException, IOException {
            String path
    =request.getParameter("filename");
            path
    =new String(path.getBytes("ISO-8859-1"),"utf-8");
            download(path,request,response);
        }
        
        @SuppressWarnings(
    "deprecation")
        
    public HttpServletResponse download(String path,HttpServletRequest request, HttpServletResponse response) {
            
    try {
                
    // path是指欲下載的文件的路徑。
                File file = new File(request.getRealPath("/")+"/"+path);
                
    // 取得文件名。
                String filename = file.getName();
                
    // 取得文件的后綴名。
                
    //String ext = filename.substring(filename.lastIndexOf(".") + 1).toUpperCase();

                
    // 以流的形式下載文件。
                InputStream fis = new BufferedInputStream(new FileInputStream(file));
                
    byte[] buffer = new byte[fis.available()];
                fis.read(buffer);
                fis.close();
                
    // 清空response
                response.reset();
                
    // 設(shè)置response的Header
                response.addHeader("Content-Disposition""attachment;filename=" + new String(filename.getBytes("utf-8"),"ISO-8859-1"));
                response.addHeader(
    "Content-Length""" + file.length());
                OutputStream toClient 
    = new BufferedOutputStream(response.getOutputStream());
                response.setContentType(
    "application/octet-stream");
                toClient.write(buffer);
                toClient.flush();
                toClient.close();
            } 
    catch (IOException ex) {
                ex.printStackTrace();
            }
            
    return response;
        }
    }
    web.xml
    <servlet>
            
    <servlet-name>fileDownLoadServlet</servlet-name>
            
    <servlet-class>com.future.zfs.util.FileDownLoadServlet</servlet-class>
        
    </servlet>
        
    <servlet-mapping>
            
    <servlet-name>fileDownLoadServlet</servlet-name>
            
    <url-pattern>/fileDownLoadServlet</url-pattern>
        
    </servlet-mapping>
    <href="fileDownLoadServlet?filename=通訊錄.xls">哈哈,測(cè)試文件下載</a>
    posted on 2010-12-10 17:21 雪山飛鵠 閱讀(21739) 評(píng)論(9)  編輯  收藏 所屬分類(lèi): javase

    Feedback

    # re: 基于servlet的文件下載 2010-12-14 11:15 雪落無(wú)聲
    不錯(cuò),收藏了  回復(fù)  更多評(píng)論
      

    # re: 基于servlet的文件下載 2011-12-02 15:47 www
    @雪落無(wú)聲
    請(qǐng)問(wèn)你的那個(gè)path是指文件在服務(wù)器的存儲(chǔ)路徑嗎
      回復(fù)  更多評(píng)論
      

    # re: 基于servlet的文件下載 2012-09-21 17:04 Laura
    不能指定 下載的路徑  回復(fù)  更多評(píng)論
      

    # re: 基于servlet的文件下載 2013-01-22 09:13 donny
    很不錯(cuò)。根據(jù)你寫(xiě)的我改了一改。就能指定下載路徑了。感謝  回復(fù)  更多評(píng)論
      

    # re: 基于servlet的文件下載 2013-05-20 16:13 gelingolf
    寫(xiě)的不錯(cuò),學(xué)習(xí)
    www.gelingolf.com  回復(fù)  更多評(píng)論
      

    # re: 基于servlet的文件下載 2013-06-08 13:37 kzt
    文件大的話豈不是就不行了  回復(fù)  更多評(píng)論
      

    # re: 基于servlet的文件下載 2013-06-25 20:59 EasonHaha
    inputStream.avaliable()不安全吧,還是byte數(shù)組循環(huán)文檔些  回復(fù)  更多評(píng)論
      

    # re: 基于servlet的文件下載 2013-10-28 20:49 pecan
    沒(méi)錯(cuò)@EasonHaha,這個(gè)方法已經(jīng)導(dǎo)致我的程序溢出了。。  回復(fù)  更多評(píng)論
      

    # re: 基于servlet的文件下載 2014-10-31 15:59 lyle
    深圳java群 397083120 找工作,討論技術(shù),交朋友  回復(fù)  更多評(píng)論
      

    主站蜘蛛池模板: 亚洲AV男人的天堂在线观看| 免费无遮挡无码视频网站| 日本高清不卡aⅴ免费网站| 九九免费观看全部免费视频| 视频一区二区三区免费观看| 免费亚洲视频在线观看| 香港一级毛片免费看| 无遮挡免费一区二区三区| 一区免费在线观看| 久久国产精品免费| 最近2019中文免费字幕在线观看| 永久免费av无码网站yy| 免费A级毛片无码A∨中文字幕下载| 人妻无码一区二区三区免费| 18禁美女裸体免费网站| 国产v精品成人免费视频400条| 99精品全国免费观看视频| 四虎www成人影院免费观看| 日本高清免费不卡在线| 亚洲国产精品综合久久一线| 亚洲天堂在线视频| 亚洲中文字幕不卡无码| 亚洲短视频男人的影院| 亚洲人成网网址在线看| 亚洲色偷偷综合亚洲AV伊人蜜桃| WWW国产亚洲精品久久麻豆| 一区二区三区免费视频网站| 国产精品网站在线观看免费传媒 | 亚洲偷自拍拍综合网| 亚洲乱码一区二区三区在线观看| 亚洲欧洲免费视频| 亚洲av无码不卡久久| 欧美激情综合亚洲一二区| 国产免费福利体检区久久| 最近免费视频中文字幕大全| 精品无码国产污污污免费| 国产亚洲精品成人a v小说| 亚洲一区二区三区首页| 亚洲综合av一区二区三区| 特a级免费高清黄色片| 在线看片免费人成视久网|