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

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

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

    當(dāng)幸福來敲門

    我就會牢牢抓住!
    隨筆 - 50, 文章 - 3, 評論 - 8, 引用 - 0
    數(shù)據(jù)加載中……

    JSP下載txt 和 Excel兩種文件

    jsp 下載txt文件和excel文件

    最近做了個用jsp下載的頁面 將代碼貼出來 權(quán)作記錄吧

    1 下載txt文件 

    這個花了我不少時間 原因是用ie下載txt文件時是在頁面中直接打開了文件.雖然查了一些資料,也看了別人的解決方案,可還是解決不了問題,最后發(fā)現(xiàn)是一個字母惹的禍:少寫一個字母 嘿嘿 夠馬虎!!!

    代碼如下:

    OutputStream o=response.getOutputStream();
       byte b[]=new byte[500];
       File fileLoad=new File("e:/test.txt");
        response.setContentType("application/octet-stream");

       response.setHeader("content-disposition","attachment; filename=text.txt");
       long fileLength=fileLoad.length();
       String length1=String.valueOf(fileLength);
       response.setHeader("Content_Length",length1);
       FileInputStream in=new FileInputStream(fileLoad);
       int n;
       while((n=in.read(b))!=-1){
        o.write(b,0,n);
       }
      
       in.close();
       out.clear();
       out = pageContext.pushBody();

    2 下載excel文件 

    跟下載txt文件時的唯一區(qū)別是ContentType值的設(shè)置不同:

    OutputStream o=response.getOutputStream();
       byte b[]=new byte[500];
       File fileLoad=new File("e:/text.xls");
       response.reset();
      

        response.setContentType("application/vnd.ms-excel");

       response.setHeader("content-disposition","attachment; filename=text.xls");
       long fileLength=fileLoad.length();
       String length1=String.valueOf(fileLength);
       response.setHeader("Content_Length",length1);
       FileInputStream in=new FileInputStream(fileLoad);
       int n;
       while((n=in.read(b))!=-1){
        o.write(b,0,n);
       }
      
       in.close();
       out.clear();
       out = pageContext.pushBody();

     

     

    這兩個本來是放在一起的,因為我的頁面中需要判斷是下載的txt文件還是xls文件  在這里給分開了 需要注意的是,最后兩句一定要加上,否則會出現(xiàn)getOutputStream()錯誤的!!!!

     

     

     

     

     

     

     

     

    實例:

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
        <base href="<%=basePath%>">
        <title>My JSP 'index.jsp' starting page</title>
        <script type="text/javascript">
           function download(filename){
             var url = encodeURI("down2.jsp?filename="+filename);
             window.location.href= url;
           }
        </script>
    </head>

    <body>
    普通測試:
    <a href="javascript:void(0)" onclick="download('a.txt');">Down a.txt</a>  
    中文文件名測試:
    <a href="javascript:void(0)" onclick="download('中文.txt');">Down 中文.txt</a>  
    普通轉(zhuǎn)向:
    <a href="a.txt">down.txt</a>  
    </body>
    </html>

     

    down2.jsp:
    <%@ page language="java" import="java.util.*,java.io.* " pageEncoding="UTF-8"%>
    <%
    request.setCharacterEncoding("utf-8");
    String filename = request.getParameter("filename");
    filename = new String(filename.getBytes("ISO-8859-1"),"UTF-8");
    System.out.println(filename);
    OutputStream o=response.getOutputStream();
    byte b[]=new byte[500];
    /** * 得到文件的當(dāng)前路徑 * @param args */
    String   serverpath=request.getRealPath("\\");
    File fileLoad=new File(serverpath+filename);
    response.setContentType("application/octet-stream");
    response.setHeader("content-disposition","attachment; filename="+filename);
    long fileLength=fileLoad.length();
    String length1=String.valueOf(fileLength);
    response.setHeader("Content_Length",length1);
    FileInputStream in=new FileInputStream(fileLoad);
    int n;
    while((n=in.read(b))!=-1){
       o.write(b,0,n);
    }
    in.close();
    out.clear();
    out = pageContext.pushBody();
    %>

    posted on 2011-12-21 10:53 wyx 閱讀(4834) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 热久久这里是精品6免费观看| 亚洲国产日韩女人aaaaaa毛片在线| 亚洲成av人片在线天堂无| 国拍在线精品视频免费观看| 91亚洲自偷在线观看国产馆| 一二三四在线播放免费观看中文版视频 | 亚洲精品蜜桃久久久久久| XXX2高清在线观看免费视频| 国产亚洲人成A在线V网站| 韩国免费a级作爱片无码| 亚洲综合伊人久久综合| 国产免费AV片在线观看 | 亚洲入口无毒网址你懂的| 青春禁区视频在线观看直播免费 | 亚洲国产福利精品一区二区| 亚洲中文无码永久免费| 亚洲av无码日韩av无码网站冲| 免费人成在线观看播放国产 | 可以免费看黄的网站| 亚洲精品人成网线在线播放va| 国产一区二区免费在线| 韩日电影在线播放免费版| 亚洲美女精品视频| 成人最新午夜免费视频| 人成电影网在线观看免费| 亚洲91av视频| 午夜视频免费观看| 国产黄在线观看免费观看不卡| 亚洲视频在线观看免费| 好男人视频在线观看免费看片| 五月天国产成人AV免费观看| 亚洲三级电影网址| 国产无遮挡吃胸膜奶免费看| 成人性生交大片免费看中文| 亚洲乱人伦精品图片| 亚洲精品无码99在线观看 | 亚洲国产综合自在线另类| 四虎永久在线精品视频免费观看| 好吊色永久免费视频大全| 自拍偷区亚洲国内自拍| 亚洲日韩欧洲无码av夜夜摸|