论坛首页 入门技术论坛

文件下载时文件名过长导致截断的问题

浏览 3745 次
该帖已经被评为新手帖
作者 正文
   发表时间:2008-05-05  
直接用URLEncoder.encode(fileName,"UTF-8"),得到的文件名长度会被截断。
解决方法:
      文件名先用“GB2312”编码,然后用“ISO8859_1”解码.

代码例子:
filename=URLEncoder.encode(filename,"GB2312");
filename=URLDecoder.decode(filename, "ISO8859_1");
response.setContentType("application/x-msdownload");

response.setHeader("Content-disposition","attachment; filename="+filename);



// 直接用IE打开
//response.setHeader("Content-disposition", "filename=" + filename);

BufferedInputStream bis = null;
BufferedOutputStream bos = null;

try {
bis = new BufferedInputStream(new FileInputStream(
Constants.listFilePath + directoryname + "\\" + filename1));
bos = new BufferedOutputStream(response.getOutputStream());

byte[] buff = new byte[2048];
int bytesRead;

while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff, 0, bytesRead);
}
bos.flush();
} catch (final IOException e) {
log.error(e.toString());
}
   发表时间:2008-07-10  
按照你说的还是不行呀
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics