<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)航:
     
    主站蜘蛛池模板: 亚洲狠狠婷婷综合久久久久| 成人免费一区二区三区在线观看| 无码亚洲成a人在线观看| 国产成人免费在线| 亚洲男人的天堂www| v片免费在线观看| 国产成人麻豆亚洲综合无码精品| 亚洲av伊人久久综合密臀性色| 精品日韩亚洲AV无码一区二区三区| 亚洲国产精品成人精品软件| 免费观看无遮挡www的小视频| 国产又大又黑又粗免费视频| 亚洲中文字幕乱码一区| 狠狠久久永久免费观看| 污网站在线免费观看| 亚洲午夜福利精品久久| 久久国产乱子伦精品免费一| 2022年亚洲午夜一区二区福利| 免费人成网站永久| 久久精品国产亚洲5555| 国产精品免费看久久久| 亚洲一区无码中文字幕乱码| 久久这里只有精品国产免费10| 亚洲乱码国产乱码精品精| 久久午夜夜伦鲁鲁片免费无码| 妞干网在线免费观看| 国产亚洲综合精品一区二区三区| 2022久久国产精品免费热麻豆| 亚洲成?Ⅴ人在线观看无码| 韩国免费a级作爱片无码| 中文字幕亚洲色图| 麻豆国产人免费人成免费视频| 1区1区3区4区产品亚洲| 日韩免费高清视频网站| 羞羞视频免费网站在线看| 亚洲福利电影在线观看| 亚洲av中文无码| 一级成人a毛片免费播放| 亚洲爆乳成av人在线视菜奈实| 成人免费午夜在线观看| 九九视频高清视频免费观看|