博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java之servlet之文件下载
阅读量:5038 次
发布时间:2019-06-12

本文共 1034 字,大约阅读时间需要 3 分钟。

1.在页面中,可以直接通过超链接来下载:

  a) 如果浏览器能够打开该文件,那么直接在浏览器中显示---不是想要的效果

  b) 任何人都能下载,不能进行权限控制

2.通过servlet来进行下载,在servlet中是通过文件流来下载的。

@WebServlet("/download")public class DownloadServlet extends HttpServlet{    @Override    protected void service(HttpServletRequest req, HttpServletResponse resp)            throws ServletException, IOException {        resp.setCharacterEncoding("utf-8");        resp.setContentType("application/octet-stream");        //解决 以文件形式下载 而不会被浏览器打开    以及中文文件名需要编码        resp.setHeader("Content-Disposition", "attachment;filename="+URLEncoder.encode("中国", "utf-8")+".txt");        PrintWriter os = resp.getWriter();        String path = this.getServletContext().getRealPath("/download");        Reader is = new BufferedReader(new FileReader(new File(path,"t.txt")));        int len=0;        char[] buffer = new char[200];        while((len=is.read(buffer))!=-1){            os.print(new String(buffer,0,len));        }        is.close();        os.close();    }}

 

转载于:https://www.cnblogs.com/Vincent-yuan/p/11161240.html

你可能感兴趣的文章
where,having与 group by连用的区别
查看>>
【MySQL】MySQL锁和隔离级别浅析二 之 INSERT
查看>>
Oracle T4-2 使用ILOM CLI升级Firmware
查看>>
4.14上午
查看>>
数据分析 -- 白话一下什么是决策树模型(转载)
查看>>
Java SPI机制原理和使用场景
查看>>
web前端java script学习2017.7.18
查看>>
删除TXPlatform
查看>>
LaTex:图片排版
查看>>
并发访问超时的问题可能性(引用)
查看>>
中小团队基于Docker的Devops实践
查看>>
利用python打开摄像头并保存
查看>>
System函数的使用说明
查看>>
Selenium-测试对象操作之:获取浏览器滚动条滚动距离
查看>>
Linux下MySQL数据库安装与配置
查看>>
Extjs String转Json
查看>>
oracle入门(4)——少而常用的命令
查看>>
打印机设置(PrintDialog)、页面设置(PageSetupDialog) 及 RDLC报表如何选择指定打印机...
查看>>
Java 虚拟机部分面试题
查看>>
二叉树的遍历问题总结
查看>>