java下载时不弹出下载弹窗,怎么办!!急需

lcs943423147 2015-06-01 06:38:41


跟断点都能跟到,运行完就没有反映了,怎么才能弹窗选择下载路径????



public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

//获得请求文件名
String fileName = request.getParameter("fileName");
System.out.println(fileName);

//设置文件MIME类型
response.setContentType(getServletContext().getMimeType(fileName));

//设置Content-Disposition
//服务端向客户端游览器发送文件时,如果是浏览器支持的文件类型,一般会默认使用浏览器打开,比如txt、jpg等,会直接在浏览器中显示,
//如果需要提示用户保存,就要利用Content-Disposition进行一下处理,关键在于一定要加上attachment:

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

//读取目标文件,通过response将目标文件写到客户端
//获取目标文件的绝对路径
String fullFileName = getServletContext().getRealPath("/download/" + fileName);
//System.out.println(fullFileName);

//读取文件

InputStream in = new FileInputStream(fullFileName);
OutputStream out = response.getOutputStream();

//写文件
int b;
while((b=in.read())!= -1)
{
out.write(b);
}

in.close();
out.close();
}
...全文
1650 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jack Sparrow丶 2017-11-29
  • 打赏
  • 举报
回复
尼玛,搞好了,不要用Ajax,就这个问题搞了半天
骑驴找大爷 2016-10-18
  • 打赏
  • 举报
回复
咋弄的啊。。。。我也遇到了这种问题 ,谷歌浏览器 默认下载 我指定地址不行
lcs943423147 2015-06-01
  • 打赏
  • 举报
回复
哈哈,原来已经弄好了,谢谢!
lcs943423147 2015-06-01
  • 打赏
  • 举报
回复
引用 1 楼 u011376884 的回复:
用byte[]接InputStream read的值
谢谢!!这个可以下载了,但是还是没有弹窗,是自己默认下载位置,这个怎么破?大神!
  • 打赏
  • 举报
回复

byte[] buff = new byte[2048];
			int b= 0;
			while(-1 != (b= in.read(buff , 0 , buff.length)))
			{
				out.write(buff , 0 , b);
			}
  • 打赏
  • 举报
回复
用byte[]接InputStream read的值

5,655

社区成员

发帖
与我相关
我的任务
社区描述
Web开发应用服务器相关讨论专区
社区管理员
  • 应用服务器社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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