Loading...

          java .net

          jsp下載文件的問題

          要提供給客戶一個下載xml文件備份的功能
          思路確定了
          生成xml
          在服務器指定目錄創建文件
          取得文件路徑,彈出下載框

          Java語言:
          01 <%@ page contentType="text/html;charset=UTF-8" language="java"%>
          02 <%@ page import="java.io.*" %>
          03 <%
          04      String pathurl = (String)request.getAttribute("pathurl");
          05      if(pathurl !=null && !pathurl.equals("")){
          06    
          07             String addressReport = application.getRealPath("/")+"saveFiles"+File.separator+pathurl;
          08             //String addressReport = PageConstraint.XML_PATH_SEND+pathurl;
          09            addressReport = addressReport.replace(File.separator,File.separator+File.separator);
          10           
          11           //   設置響應頭和下載保存的文件名 
          12           response.setContentType("APPLICATION/OCTET-STREAM;charset=UTF-8"); 
          13           response.setHeader("Content-Disposition"
          14           "attachment;   filename=\""   +   pathurl   +   "\""); 
          15           
          16           //   打開指定文件的流信息 
          17           java.io.FileInputStream   fileInputStream   = 
          18           new   java.io.FileInputStream(addressReport); 
          19           
          20           寫出流信息 
          21           int   i; 
          22           while   ((i=fileInputStream.read())   !=   -1)   { 
          23               out.write(i); 
          24           }
          25    
          26           fileInputStream.close(); 
          27           out.close();
          28           
          29     }
          30   %>

          這么寫在jsp文件中的代碼,開始試驗沒有問題,但是如果xml中有中文,就會是亂碼,xml文件是使用utf8生成的,猜想可能是在流讀取的時候編碼不對,于是在網上搜得了下面這樣的寫法,通過InputStreamReader設置了編碼UTF-8
          測試成功

          Java語言:
          01 <%@ page contentType="text/html;charset=UTF-8" language="java"%>
          02 <%@ page import="java.io.*" %>
          03 <%
          04      String pathurl = (String)request.getAttribute("pathurl");
          05      if(pathurl !=null && !pathurl.equals("")){
          06    
          07             String addressReport = application.getRealPath("/")+"saveFiles"+File.separator+pathurl;
          08             //String addressReport = PageConstraint.XML_PATH_SEND+pathurl;
          09            addressReport = addressReport.replace(File.separator,File.separator+File.separator);
          10           
          11           //   設置響應頭和下載保存的文件名 
          12           response.setContentType("APPLICATION/OCTET-STREAM;charset=UTF-8"); 
          13           response.setHeader("Content-Disposition"
          14           "attachment;   filename=\""   +   pathurl   +   "\""); 
          15           
          16           //   打開指定文件的流信息 
          17           java.io.FileInputStream   fileInputStream   = 
          18           new   java.io.FileInputStream(addressReport); 
          19           
          20           //   寫出流信息 
          21           //int   i; 
          22           //while   ((i=fileInputStream.read())   !=   -1)   { 
          23           //out.write(i); 
          24           //}
          25    
          26           //fileInputStream.close(); 
          27           //out.close();
          28          
          29           InputStreamReader   reader=new   InputStreamReader(fileInputStream,"UTF-8"); 
          30           int   i=0
          31           while((i=reader.read())!=-1){ 
          32               out.write(i);
          33
          34           }
          35           reader.close(); 
          36           fileInputStream.close();
          37           out.close(); 
          38     }
          39   %>


          總結:還是對java的流相關只是掌握不清啊,不能熟練運用

          posted on 2008-09-05 12:49 閱讀(922) 評論(0)  編輯  收藏 所屬分類: 學習java工作

          公告

          希望有一天

          我能用鼠標雙擊我的錢包

          然后選中一張100元

          按住“ctrl+c”

          接著不停的“ctrl+v”

          嘻嘻~~~笑醒~~~



          導航

          <2008年9月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

          統計

          常用鏈接

          留言簿(6)

          隨筆分類(102)

          隨筆檔案(398)

          文章分類

          文章檔案(10)

          有趣網絡

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 太白县| 新昌县| 马鞍山市| 绥阳县| 浮山县| 肥城市| 东源县| 宕昌县| 钟山县| 建宁县| 顺义区| 灵石县| 错那县| 泉州市| 阿克苏市| 双桥区| 长泰县| 新绛县| 乡城县| 密云县| 嘉祥县| 六枝特区| 云和县| 华坪县| 元江| 大名县| 宜章县| 三亚市| 巴塘县| 安顺市| 巫山县| 西林县| 桃源县| 古田县| 大同县| 耿马| 岑溪市| 德州市| 西城区| 子长县| 饶平县|