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

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

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

    當幸福來敲門

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

    JSP下載txt 和 Excel兩種文件

    jsp 下載txt文件和excel文件

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

    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值的設置不同:

    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>  
    普通轉向:
    <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];
    /** * 得到文件的當前路徑 * @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 閱讀(4832) 評論(0)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 日韩免费人妻AV无码专区蜜桃| caoporm超免费公开视频| 69影院毛片免费观看视频在线 | 久久综合亚洲色一区二区三区| 国产成人无码区免费网站| 亚洲乱色熟女一区二区三区丝袜| 91国内免费在线视频| 亚洲av一综合av一区| 2020因为爱你带字幕免费观看全集| 亚洲天堂一区二区| 亚洲毛片在线免费观看| 亚洲男人天堂2018av| 国产又大又长又粗又硬的免费视频| 自拍偷自拍亚洲精品播放| 亚洲第一黄色网址| 黄色视屏在线免费播放| 国产AV无码专区亚洲A∨毛片| 在线观看免费中文视频| 亚洲中文字幕一二三四区苍井空 | 国产精品成人免费福利| 99久久国产亚洲综合精品| 免费人成网站在线播放| 国产精品美女久久久免费| 久久精品国产亚洲AV麻豆不卡| 四虎最新永久免费视频| 国产成人高清亚洲一区91| 亚洲色精品vr一区二区三区| 午夜影院免费观看| 亚洲欧美日韩一区二区三区在线| 国产成人免费a在线视频色戒| CAOPORM国产精品视频免费| 亚洲精品综合一二三区在线 | 亚洲国产精品综合久久一线| 九九免费观看全部免费视频| 亚洲成av人影院| 日韩免费视频在线观看| 成人久久免费网站| 亚洲国产av玩弄放荡人妇| 久久精品国产69国产精品亚洲| 91在线视频免费91| 美女巨胸喷奶水视频www免费|