posts - 0, comments - 77, trackbacks - 0, articles - 356
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          struts中實(shí)現(xiàn)文件下載

          Posted on 2007-08-05 18:06 semovy 閱讀(575) 評(píng)論(2)  編輯  收藏 所屬分類: struts
          struts中實(shí)現(xiàn)文件下載的主要代碼:

          public ActionForward execute(ActionMapping mapping, ActionForm form,
             HttpServletRequest request, HttpServletResponse response) {
            String strFileName = "測(cè)試文件.rar";
            File file = new File("具體路徑" + strFileName);//
            if(file.exists()){
             try{
              BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
              byte[] buffer = new byte[1024];
              strFileName = java.net.URLEncoder.encode(strFileName, "UTF-8");//處理中文文件名的問題
              strFileName = new String(strFileName.getBytes("UTF-8"),"GBK");//處理中文文件名的問題
              response.reset();
              response.setCharacterEncoding("UTF-8");
              response.setContentType("application/x-rar-compressed");//不同類型的文件對(duì)應(yīng)不同的MIME類型
              response.setHeader("Content-Disposition","attachment; filename=" + strFileName);
              OutputStream os = response.getOutputStream();
              while(bis.read(buffer) > 0){
               os.write(buffer);
              }
              bis.close();
              os.close();
             }
             catch(Exception e){
              ......
             }
            }
            return mapping.getInputForward();
           }

          在Struts中的實(shí)現(xiàn)和在ASP.NET的實(shí)現(xiàn)類似,這段代碼就是將服務(wù)器上的文件以流的方式發(fā)送到客戶端瀏覽器,如果要是在線打開的方式的話還應(yīng)將response.setHeader("Content-Disposition","attachment; filename=" + strFileName);改寫為response.setHeader("Content-Disposition","inline; filename=" + strFileName);


          評(píng)論

          # re: struts中實(shí)現(xiàn)文件下載  回復(fù)  更多評(píng)論   

          2008-11-29 09:27 by 林瑞霞
          請(qǐng)問一下,您這個(gè)測(cè)試文件是指的什么

          # re: struts中實(shí)現(xiàn)文件下載  回復(fù)  更多評(píng)論   

          2009-04-16 15:10 by famingyuan
          沒有報(bào)錯(cuò)么????
          主站蜘蛛池模板: 漠河县| 永春县| 黄山市| 县级市| 清河县| 宜兰县| 无锡市| 芜湖县| 乐陵市| 团风县| 韶关市| 化州市| 屯昌县| 余干县| 古交市| 崇文区| 浪卡子县| 泽库县| 清涧县| 石台县| 章丘市| 体育| 贺州市| 桐城市| 郁南县| 和龙市| 巫溪县| 和硕县| 庆元县| 喜德县| 辽阳市| 苍溪县| 筠连县| 平谷区| 临江市| 永泰县| 苏尼特左旗| 闻喜县| 宕昌县| 积石山| 甘肃省|