dingfirst

          On the Road

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            8 隨筆 :: 2 文章 :: 3 評(píng)論 :: 0 Trackbacks
          問(wèn)題:
          ??????直接用URLEncoder.encode(fileName,"UTF-8"),得到的文件名長(zhǎng)度會(huì)被截?cái)唷?br />
          解決方法是:
          ??????文件名先用“GB2312”編碼,然后用“ISO8859_1”解碼。當(dāng)然也可以在將文件名保存到數(shù)據(jù)庫(kù)之前用“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) 評(píng)論(0)  編輯  收藏

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 镇康县| 安义县| 延庆县| 武定县| 凌海市| 连江县| 承德市| 福海县| 昌邑市| 广汉市| 库尔勒市| 天镇县| 东山县| 镇沅| 五常市| 上林县| 保靖县| 荥经县| 长武县| 犍为县| 正安县| 涟源市| 普安县| 庆云县| 宁武县| 恭城| 安龙县| 奉贤区| 梓潼县| 辉县市| 巴彦淖尔市| 休宁县| 巫山县| 铁力市| 揭东县| 博乐市| 公主岭市| 乃东县| 闻喜县| 桐乡市| 保山市|