servlet中response.setHeader("Content-Disposition", "attachment;Filename=..")下载问题

bridge_ca 2013-07-26 10:31:55
response.setContentType("text/html");
//(换成response.setContentType("image/jpeg");也不行)

response.setHeader("Content-Disposition", "attachment;Filename=011.jpg");
String path=this.getServletContext().getRealPath("/file/011.jpg");

FileInputStream fis=new FileInputStream(path);
System.out.println(path);
int len=0;
byte buffer[]=new byte[1024];

OutputStream os=response.getOutputStream();
while((len=fis.read())>0){
os.write(buffer, 0, len);
}
os.close();
fis.close();
图片大小有几十K,弹出下载框的时候变成了几百B,换了几个文件试了下还是一样,文件变得很小,下载之后打不开
...全文
819 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
bridge_ca 2013-07-26
  • 打赏
  • 举报
回复
引用 5 楼 ghostkngiht 的回复:
[quote=引用 3 楼 GuuJiang 的回复:] 你的fis根本就没读到buffer去
++ while((len=fis.read())>0){换成while((len=fis.read(buffer))>0){[/quote]恩,对的
ghostkngiht 2013-07-26
  • 打赏
  • 举报
回复
引用 3 楼 GuuJiang 的回复:
你的fis根本就没读到buffer去
++ while((len=fis.read())>0){换成while((len=fis.read(buffer))>0){
bridge_ca 2013-07-26
  • 打赏
  • 举报
回复
引用 3 楼 GuuJiang 的回复:
你的fis根本就没读到buffer去
哎哎,一针见血啊,纠结半天,还以为是 response.setContentType的问题,谢谢
GuuJiang 2013-07-26
  • 打赏
  • 举报
回复
你的fis根本就没读到buffer去
bridge_ca 2013-07-26
  • 打赏
  • 举报
回复
引用 1 楼 ghostkngiht 的回复:
response.setContentType("application/x-msdownload");
没用啊,还是一样
ghostkngiht 2013-07-26
  • 打赏
  • 举报
回复
response.setContentType("application/x-msdownload");

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧