<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文件時是在頁面中直接打開了文件.雖然查了一些資料,也看了別人的解決方案,可還是解決不了問題,最后發現是一個字母惹的禍:少寫一個字母 嘿嘿 夠馬虎!!!

    代碼如下:

    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文件時的唯一區別是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文件  在這里給分開了 需要注意的是,最后兩句一定要加上,否則會出現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 閱讀(4834) 評論(0)  編輯  收藏


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


    網站導航:
     
    主站蜘蛛池模板: 一本无码人妻在中文字幕免费| 久久亚洲精品11p| 亚洲av无码乱码国产精品fc2| 久久久久无码专区亚洲av| 亚洲精品国偷自产在线| 亚洲国产精品综合一区在线| 亚洲中文字幕精品久久| 美女视频黄频a免费大全视频| 国产一精品一av一免费爽爽| 黄页网站免费观看| 亚洲一区二区三区国产精品| 亚洲天堂一区在线| 很黄很黄的网站免费的| 在线亚洲人成电影网站色www| 亚洲av无码久久忘忧草| 免费一级全黄少妇性色生活片| 久久久久成人片免费观看蜜芽| 插B内射18免费视频| 亚洲亚洲人成综合网络| 亚洲欧美一区二区三区日产| 免费成人高清在线视频| 久久综合亚洲色一区二区三区 | 久久免费观看国产精品| 日韩一品在线播放视频一品免费| 亚洲日韩欧洲乱码AV夜夜摸 | 国产精品视频全国免费观看| 久草免费在线观看视频| 亚洲精品无码久久久久YW| 亚洲精品乱码久久久久久不卡| 亚洲愉拍一区二区三区| 亚洲成AⅤ人影院在线观看| 亚洲一级黄色大片| 四虎永久成人免费影院域名| 亚洲三级在线播放| 亚洲高清免费视频| 无码成A毛片免费| 国产精品亚洲精品久久精品| 好男人视频在线观看免费看片| 亚洲人精品亚洲人成在线| 91麻豆最新在线人成免费观看| 羞羞漫画在线成人漫画阅读免费|