dingfirst

          On the Road

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

          解決方法是:
          ??????文件名先用“GB2312”編碼,然后用“ISO8859_1”解碼。當(dāng)然也可以在將文件名保存到數(shù)據(jù)庫之前用“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 閱讀(1180) 評論(0)  編輯  收藏

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 六盘水市| 师宗县| 凉城县| 城固县| 神木县| 会同县| 若羌县| 孝昌县| 荣成市| 裕民县| 萝北县| 将乐县| 余干县| 桐乡市| 静安区| 容城县| 阿克陶县| 宁国市| 涞水县| 勃利县| 建昌县| 句容市| 常熟市| 阿合奇县| 华蓥市| 铜鼓县| 黑山县| 德阳市| 枞阳县| 堆龙德庆县| 靖州| 焦作市| 翁牛特旗| 忻城县| 柏乡县| 邹平县| 巩留县| 泾川县| 扬州市| 江山市| 平潭县|