JAVA实现文件下载,浏览器端得到数据没反应
代码如下publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServ...
代码如下
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//得到要下载的文件名称
String filename=request.getParameter("filename");
//文件存放的路径,合成绝对路径
String dir = this.getServletContext().getRealPath("/");
String filepath=dir+"bksh"+"\\"+filename;
//得到这个文件的对象
File f=new File(filepath);
//response的编码方式为.doc下载
response.setContentType("application/msword");
//写明要下载的文件的大小
response.setContentLength((int)file.length());
//文件名
response.setHeader("Content-Disposition", "attachment; filename=" + filename);
//独处文件的IO流
FileInputStream fis=new FileInputStream(file);
BufferedInputStream buff=new BufferedInputStream(fis);
byte [] b=new byte[1024];//相当读文件的缓存
long k=0;//该值用于计算当前实际下载了多少字节
//response对象得到输出流
OutputStream myout=response.getOutputStream();
//开始循环下载
while(k<file.length()){
int j=buff.read(b,0,1024);
k+=j;
//将b中的数据写到客户端的内存
myout.write(b,0,j);
}
//将写入到客户端的内存的数据,刷新到磁盘
myout.flush();
firbug显示服务器已经返回了数据,但是貌似浏览器不任务它需要下载这些数据。。。
求高人解答,在线等 展开
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//得到要下载的文件名称
String filename=request.getParameter("filename");
//文件存放的路径,合成绝对路径
String dir = this.getServletContext().getRealPath("/");
String filepath=dir+"bksh"+"\\"+filename;
//得到这个文件的对象
File f=new File(filepath);
//response的编码方式为.doc下载
response.setContentType("application/msword");
//写明要下载的文件的大小
response.setContentLength((int)file.length());
//文件名
response.setHeader("Content-Disposition", "attachment; filename=" + filename);
//独处文件的IO流
FileInputStream fis=new FileInputStream(file);
BufferedInputStream buff=new BufferedInputStream(fis);
byte [] b=new byte[1024];//相当读文件的缓存
long k=0;//该值用于计算当前实际下载了多少字节
//response对象得到输出流
OutputStream myout=response.getOutputStream();
//开始循环下载
while(k<file.length()){
int j=buff.read(b,0,1024);
k+=j;
//将b中的数据写到客户端的内存
myout.write(b,0,j);
}
//将写入到客户端的内存的数据,刷新到磁盘
myout.flush();
firbug显示服务器已经返回了数据,但是貌似浏览器不任务它需要下载这些数据。。。
求高人解答,在线等 展开
4个回答
展开全部
建议你
1.重启电脑
2.检查网速
3.换个浏览器试试,试试腾讯电脑管家-软件管理-软件仓库-浏览器-找到你想要的下载就行了
1.重启电脑
2.检查网速
3.换个浏览器试试,试试腾讯电脑管家-软件管理-软件仓库-浏览器-找到你想要的下载就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int length = b.length;
response.setContentType("application/vnd.ms-excel");//文件格式,此处设置为excel
response.setHeader("Content-Disposition",
"attachment;filename=文件.xls");//此处需要设置下载文件的默认名称
response.setContentLength(length);
java.io.OutputStream o = response.getOutputStream();
o.write(reportContent, 0, length);
o.flush();
out.clear();
out = pageContext.pushBody();
response.flushBuffer();
response.setContentType("application/vnd.ms-excel");//文件格式,此处设置为excel
response.setHeader("Content-Disposition",
"attachment;filename=文件.xls");//此处需要设置下载文件的默认名称
response.setContentLength(length);
java.io.OutputStream o = response.getOutputStream();
o.write(reportContent, 0, length);
o.flush();
out.clear();
out = pageContext.pushBody();
response.flushBuffer();
更多追问追答
追问
有什么不一样么。。。
追答
区别就是我的好使...
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
回答一下吧,万一有人看呢,我是用ajax请求的,所以出现了这样的问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你换个浏览器试下,然后再debug你的程序看看你的输出流生成了没
追问
IE firefox chrome都试了,有输出流。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询