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 閱讀(929) 評論(0)  編輯  收藏 所屬分類: 學習java工作

          公告

          希望有一天

          我能用鼠標雙擊我的錢包

          然后選中一張100元

          按住“ctrl+c”

          接著不停的“ctrl+v”

          嘻嘻~~~笑醒~~~



          導航

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

          統計

          常用鏈接

          留言簿(6)

          隨筆分類(102)

          隨筆檔案(398)

          文章分類

          文章檔案(10)

          有趣網絡

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 韶山市| 泰兴市| 扬中市| 屏南县| 开封市| 石景山区| 桓台县| 凌云县| 扶风县| 东港市| 颍上县| 长沙市| 金阳县| 贵德县| 南开区| 疏附县| 麻阳| 息烽县| 筠连县| 习水县| 枞阳县| 林西县| 宁南县| 禹州市| 乌审旗| 湛江市| 棋牌| 兴仁县| 大同县| 旬邑县| 壶关县| 南雄市| 蓝田县| 长春市| 桃江县| 色达县| 镇安县| 策勒县| 横山县| 千阳县| 宁蒗|