java 下载文件,中文文件名称乱码的问题
2013-01-17 17:10
549 查看
/**
* 下载文件 处理下载中心的数据包
*
* @author wangrr
*/
protected void DownLoadFile(HttpServletResponse response ,HttpServletRequest request, String Path)
throws IOException
{
String filepath= Path.substring(0,Path.lastIndexOf("/")+1);
String filename = Path.substring(Path.lastIndexOf("/")+1);
//解决中文文件名乱码问题(火狐,ie,谷歌都兼容)
String fileName = java.net.URLEncoder.encode(filename, "UTF-8");
if (fileName.length() > 150) {
String guessCharset ="gb2312"; /*根据request的locale 得出可能的编码,中文操作系统通常是gb2312*/
fileName = new String(filename.getBytes(guessCharset), "ISO8859-1");
}
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
response.reset();
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"");
response.setHeader("Connection", "close");
ServletOutputStream sos = response.getOutputStream();
FileInputStream fis = null;
File d = new File(filepath);
if (d.exists())
{
fis = new FileInputStream(filepath+filename);//
byte b[] = new byte[1000];
int j;
while ((j = fis.read(b)) != -1)
{
try
{
sos.write(b, 0, j);
}
catch (IOException exp)
{
}
}
fis.close();
sos.flush();
sos.close();
}
}
* 下载文件 处理下载中心的数据包
*
* @author wangrr
*/
protected void DownLoadFile(HttpServletResponse response ,HttpServletRequest request, String Path)
throws IOException
{
String filepath= Path.substring(0,Path.lastIndexOf("/")+1);
String filename = Path.substring(Path.lastIndexOf("/")+1);
//解决中文文件名乱码问题(火狐,ie,谷歌都兼容)
String fileName = java.net.URLEncoder.encode(filename, "UTF-8");
if (fileName.length() > 150) {
String guessCharset ="gb2312"; /*根据request的locale 得出可能的编码,中文操作系统通常是gb2312*/
fileName = new String(filename.getBytes(guessCharset), "ISO8859-1");
}
response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
response.reset();
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition", "attachment;filename=\"" + filename + "\"");
response.setHeader("Connection", "close");
ServletOutputStream sos = response.getOutputStream();
FileInputStream fis = null;
File d = new File(filepath);
if (d.exists())
{
fis = new FileInputStream(filepath+filename);//
byte b[] = new byte[1000];
int j;
while ((j = fis.read(b)) != -1)
{
try
{
sos.write(b, 0, j);
}
catch (IOException exp)
{
}
}
fis.close();
sos.flush();
sos.close();
}
}
相关文章推荐
- 【javaweb:servlet】从服务端下载中文名称文件应该注意的问题!!!
- java用ant.jar解压zip格式的文件时,中文名称的文件的文件名乱码问题
- Java中FTP文件上传下载中文文件乱码问题
- 解决javaWEB 下载文件中文名称乱码问题
- Java实现ftp文件上传下载解决慢中文乱码多个文件下载等问题
- Java下载文件,文件名中文乱码问题
- 解决Struts2文件下载中文名称乱码以及文件名称中包含空格问题
- angular js 打开下载文件时文件名称为中文 IE浏览器出现乱码问题
- PHP解决浏览器 下载文件 中文名称乱码问题--兼容大多浏览器
- [置顶] PHP解决浏览器 下载文件 中文名称乱码问题--兼容大多浏览器
- Java文件上传下载删除(下载中文乱码问题)
- java下载文件中文文件名乱码问题(ie,谷歌,火狐)
- 整理java文件下载(中文乱码、火狐浏览器乱码、空格变+号、文件名包含空格时文件名可能显示不全等问题)
- java实现ftp文件上传下载,解决慢,中文乱码,多个文件下载等问题
- 解决Java下载文件,文件名包含中文在IE浏览器乱码问题
- java实现中文文件下载,解决乱码问题,亲测无问题~~
- java文件下载的中文文件名乱码问题的解决
- java文件下载及名称乱码问题
- JAVA文件下载中文名称乱码解决方案
- 使用Content-Disposition: attachment; filename=FILENAME,在Firefox浏览器中下载文件,文件名中文乱码问题解决。