A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© huojiachao 初级黑马   /  2019-2-27 17:19  /  608 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


文件下载的步骤

1.获取文件名称
String filename = request.getParameter("filename");
2.使用字节输入流加载文件进内存
2.1找到文件服务器路径
ServletContext context = this.getServletContext();
String path = context.getRealPath("/img"+filename)
//使用字节流关联//输入流读取
FileInputStream in  = new FileInputStream(path)
3.设置response响应头
3.1设置响应头类型content-type
String mimeType = context.getMimeType(filname)//获取文件的mime类型
3.2设置响应头打开方式:content-disposition
response.setHeader("content-disposition","attachment;filename="+filename);


response.setHeader("content-disposition","attachment;filename="+filename);
4.将输入流的数据写出到输出流中
        ServletOutputStream sos = response.getOutputStream();
        byte[] buff = new byte[1024 * 8];
        int len = 0;
        while((len = fis.read(buff)) != -1){
            sos.write(buff,0,len);
        }
        fis.close();
如果文件中有中文则则会出现乱码
下面就是解决乱码的方式:
在 设置响应头的打开方式代码的上面:
response.setHeader("content-disposition","attachment;filename="+filename);
添加代码
使用工具类
第一步:

第二步:


QQ截图20190227171207.png (46.92 KB, 下载次数: 8)

QQ截图20190227171207.png

QQ截图20190227171354.png (7.13 KB, 下载次数: 9)

QQ截图20190227171354.png

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马