dingfirst

          On the Road

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            8 隨筆 :: 2 文章 :: 3 評論 :: 0 Trackbacks
          問題:
          ??????直接用URLEncoder.encode(fileName,"UTF-8"),得到的文件名長度會被截斷。

          解決方法是:
          ??????文件名先用“GB2312”編碼,然后用“ISO8859_1”解碼。當然也可以在將文件名保存到數據庫之前用“GB2312”編碼。

          代碼如下:

          ?1conn?=?DBUtil.getConnection();
          ?2????????????ps?=?conn.prepareStatement("SELECT?FILE_NAME,?CONTENT_TYPE,?CONTENT?FROM?PUB_JOB_ATTACHMENTS?WHERE?ATTACHID?=??");
          ?3????????????ps.setString(1,getAttachId());
          ?4????????????rs?=?ps.executeQuery();
          ?5????????????if(rs.next())
          ?6????????????{
          ?7????????????????//java.net.URLEncoder.encode(rs.getString("FILE_NAME"),?"UTF-8")
          ?8????????????????response.setContentType(rs.getString("CONTENT_TYPE"));
          ?9????????????????String?fileName=rs.getString("FILE_NAME");
          10????????????????fileName=URLEncoder.encode(fileName,"GB2312");
          11????????????????fileName=URLDecoder.decode(fileName,?"ISO8859_1");
          12????????????????response.addHeader("Content-Disposition",?"attachment;?filename=\""?+?fileName?+?"\"");
          13????????????????Blob?content?=?rs.getBlob("CONTENT");
          14????????????????InputStream?ins?=?content.getBinaryStream();
          15????????????????byte?buffer[]?=?new?byte[1024];
          16????????????????int?length?=?-1;
          17????????????????outs?=?response.getOutputStream();
          18????????????????while((length?=?ins.read(buffer))?!=?-1)
          19????????????????????outs.write(buffer,?0,?length);
          20????????????????ins.close();
          21????????????????outs.flush();
          22????????????}

          posted on 2006-11-27 18:59 dingfirst 閱讀(1176) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 石楼县| 张北县| 疏勒县| 渑池县| 两当县| 上栗县| 襄城县| 华宁县| 丹巴县| 古交市| 舞阳县| 旌德县| 蚌埠市| 长葛市| 顺昌县| 定南县| 西城区| 佛教| 黄浦区| 沁阳市| 晋州市| 平果县| 平遥县| 松滋市| 孟村| 缙云县| 马尔康县| 济南市| 吉安市| 象州县| 澄江县| 黎平县| 西乡县| 中宁县| 嘉义县| 博乐市| 昌都县| 新泰市| 方正县| 松原市| 红桥区|