JAVA实现文件下载,浏览器端得到数据没反应

代码如下

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

int j=buff.read(b,0,1024);

k+=j;

//将b中的数据写到客户端的内存

myout.write(b,0,j);

}

//将写入到客户端的内存的数据,刷新到磁盘

myout.flush();

firbug显示服务器已经返回了数据,但是貌似浏览器不认为它需要下载这些数据。。。

求高人解答,在线等

分享到:

更多

------解决方案--------------------

response.setCharacterEncoding("utf-8");

response.setContentType("multipart/form-data");

String downloadFileName = "";

if (request.getHeader("User-Agent").toUpperCase().indexOf("MSIE") > 0) {

downloadFileName = URLEncoder.encode(fileRealName, "UTF-8");

} else {

downloadFileName = new String(fileRealName.getBytes("UTF-8"), "ISO8859-1");

}

response.setHeader("Content-disposition", "attachment; filename=" + downloadFileName);

------解决方案--------------------

似乎少了这一句:

response.setContentType("multipart/form-data");

------解决方案--------------------

response.setCharacterEncoding("utf-8");

response.setContentType((mimetype != null) ? mimetype : "application/octet-stream");

response.setContentLength(workbook.getBytes().length);

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

------解决方案--------------------

引用:response.setCharacterEncoding("utf-8");

response.setContentType((mimetype != null) ? mimetype : "application/octet-stream");

response.setContentLength(workbook.getBytes().length);

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

唯一的明白人是这个哥们,要下载你得告诉浏览器,而不是发了数据就完事了。

response.setHeader("Content-type", "application-download");

java浏览器无数据,JAVA实现文件下载,浏览器端失去数据没反应相关推荐

  1. java Socket Tcp示例三则(服务端处理数据、上传文件)

    示例一: package cn.itcast.net.p5.tcptest; import java.io.BufferedReader; import java.io.IOException; im ...

  2. [数据分析师]数据可视化:打造高端的数据报表

    本文是<如何快速成为数据分析师>的第五篇教程,如果想要了解写作初衷,可以先行阅读七周指南.温馨提示:如果您已经熟悉数据可视化,大可不必再看这篇文章,或只挑选部分. 前一篇文章列举了常用的分 ...

  3. 数据分析师]数据可视化:打造高端的数据报表

    本文是<如何快速成为数据分析师>的第五篇教程,如果想要了解写作初衷,可以先行阅读七周指南.温馨提示:如果您已经熟悉数据可视化,大可不必再看这篇文章,或只挑选部分. 前一篇文章列举了常用的分 ...

  4. Flink实战(九十三):数据倾斜(二)keyby 窗口数据倾斜的优化

    在大数据处理领域,数据倾斜是一个非常常见的问题,今天我们就简单讲讲在flink中如何处理流式数据倾斜问题. 我们先来看一个可能产生数据倾斜的sql. select TUMBLE_END(proc_ti ...

  5. java安卓浏览器下载文件,JAVA实现文件下载,浏览器端得到数据没反应解决方案

    JAVA实现文件下载,浏览器端得到数据没反应 代码如下 public void doPost(HttpServletRequest request, HttpServletResponse respo ...

  6. Android之在Java socket作为服务器里面返回数据头部怎么写入浏览器需要下载文件的文件名

    1 问题 Android app里面写了一个Java socket的简单服务器,在浏览器里面输入相应的IP和端口访问服务器下载文件,Java socket怎么写返回数据的头部信息,浏览器才知道需要下载 ...

  7. selenium控制浏览器获取数据(java 版本)

    目录 1.前言 2.操作案例 3.代码解析 3.1.WebDriverManager 3.2.解决苹果url scheme导致的protocol handler弹窗问题 3.3.操作 4.chrome ...

  8. java浏览器无界面后台截屏工具

    不同于上一篇文章中所讲到的通过客户端浏览器将 HTML 转 canvas 再生成图片的方式,本次记录的内容为服务器端(Windows Server)截屏工具.该工具特点为:通过 java 代码调用无界 ...

  9. java 滚动加载数据_[Java教程]浏览器滚动条快到底部时自动加载数据

    [Java教程]浏览器滚动条快到底部时自动加载数据 0 2015-11-30 15:00:44 1 2 3 4 5 6 ");24 main.append(" hello worl ...

  10. Android(java)学习笔记144:网络图片浏览器的实现(ANR)

    1.我们在Android下,实现使用http协议进行网络通信,请求网络数据.这里是获取网络上的图片信息,让它可以显示在手机上: 但是我们这个手机连接网络是很费时间,如果我们在主线程(UI线程)中写这个 ...

最新文章

  1. 解决pycharm创建github工程但push失败的问题
  2. C语言中的union
  3. iOS保存model数据(自定义Model 可以存放到本地)
  4. 并发容器之CopyOnWriteArrayList
  5. linux命令详解——iostat
  6. 实操代码带你理解CSS中的常用选择器(你值得掌握!)
  7. angular6--创建项目
  8. 中国联通回应裁员传闻:严重不实 勿传勿信
  9. 【报告分享】微信视频号新机遇白皮书.pdf
  10. 《完美软件》读书笔记9:良好测试的要素
  11. mysql启动6002错误_Oracle ORA-00600 6002错误的解决方法
  12. 使用股指期货与ETF基金进行期现套利
  13. 高级计量经济学及stata应用 陈强 2021年5月1-5日 社会科学 经济学 管理学 金融 医学等各个领域
  14. access 英语什么意思_access是什么意思_access怎么读_access翻译_用法_发音_词组_同反义词_入口_出口-新东方在线英语词典...
  15. sam卡和sim卡区别_SAM卡
  16. was英文读音_英语单词was怎么读
  17. minigui 编译与使用
  18. PC端如何同时登录多个微信账号
  19. 牛客网音短视频类sql-4
  20. Elasticsearch(三)——Es搜索(简单使用、全文查询、复合查询)、地理位置查询、特殊查询、聚合操作、桶聚合、管道聚合

热门文章

  1. Windows10系统设置共享文件夹和访问共享文件夹方法
  2. 手把手教你使用R语言做出一篇20分SCI文章的交互效应表(p for Interaction)
  3. python实现garch模型_【一点资讯】Python玩转金融时间序列之ARCH与GARCH模型
  4. 什么是存储过程?有什么优点?
  5. TCP segment of a reassembled PDU,就这么简单!
  6. MATLAB 绘制空间分布图,颜色代表数值(替代ArcGIS)
  7. 浏览器插件 - Chrome 对 UserScript 的声明头(metadata)兼容性一览
  8. graphpadY轴设置刻度不均匀_Matlab画图技巧: 不需要敲代码的傻瓜式操作流程
  9. 浙江大学黄杨思博计算机学院,黄杨-江南大学 理学院
  10. 探测器类的电路设计流程框图