java实现下载文件,如果文件名为中文,下载后内容为空,求解释!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java实现下载文件,如果文件名为中文,下载后内容为空,求解释!相关的知识,希望对你有一定的参考价值。
BufferedInputStream bis=null;
BufferedOutputStream bos=null;
HttpURLConnection conn=null;
path=path.replaceAll("%20", " ");
try
URL url=new URL(path);
conn=(HttpURLConnection) url.openConnection();
conn.setConnectTimeout(6000); //设置连接超时时间6s
conn.connect();
//response.reset();
response.setContentType("application/x-msdownload;");
response.addHeader("Content-Disposition","attachment;filename=\""+new String(fileName.getBytes("gb2312"),"iso8859-1")+"\"");
response.setContentType("application/octet-stream");
bis=new BufferedInputStream(conn.getInputStream());
byte[] buffer = new byte[bis.available()];
int len;
bos = new BufferedOutputStream(response.getOutputStream());//new FileOutputStream(fileName);
while((len = bis.read(buffer))!=-1)
bos.write(buffer,0,len);
bos.flush();
catch (MalformedURLException e)
e.printStackTrace();
catch (IOException e)
e.printStackTrace();
finally //关闭各类流
if(conn!=null)
conn.disconnect();
if(bis!=null)
try
bis.close();
catch (IOException e)
e.printStackTrace();
if(bos!=null)
try
bos.close();
catch (IOException e)
e.printStackTrace();
当下载中文文件名的文件时,程序报错,如图,所示为出错的地方。
Java实现多文件生成压缩包下载
我是傲骄鹿先生,沉淀、学习、分享、成长。
如果你觉得文章内容还可以的话,希望不吝您的「一键三连」,文章里面有不足的地方希望各位在评论区补充疑惑、见解以及面试中遇到的奇葩问法
最近项目中遇到多文件下载问题,为了实现功能也是花费了点儿时间,话不多说,直接上内容。如图所示,实际的需求如下:将选中的列表的文件进行下载
前端代码如下:
传递到后台是参数如下,然后进行参数处理:
后台代码如下:
最终实现的下载的文件为:download.zip。
系列文章持续更新,微信搜一搜「傲骄鹿先生 」,回复【面试】有准备的一线大厂面试资料。
以上是关于java实现下载文件,如果文件名为中文,下载后内容为空,求解释!的主要内容,如果未能解决你的问题,请参考以下文章