隐藏页面特效

Response下载文件

Response下载文件的主要步骤有七个:

1、要获取下载文件的路径

String realPath = "F:\\JavaWeb\\WorkSpace\\JavaWeb-Servlet\\Response\\src\\main\\resources\\1.png";

2、获取下载的文件名

String fileName = realPath.substring(realPath.lastIndexOf("\\") + 1);

3、设置想办法让浏览器能够支持(Content-Disposition)下载我们需要的东西,中文文件名 URLEncoder.encode编码,否则有可能乱码

resp.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));

4、获取下载文件的输入流

FileInputStream in = new FileInputStream(realPath);

5、创建缓冲区

int len = 0 byte[] buffer = new byte[1024];

6、获取OutputStream对象

ServletOutputStream out = resp.getOutputStream();

7、将FileOutputStream流写入到buffer缓冲区,使用OutputStream将缓冲区中的数据输出到 客户端

while ((len = in.read(buffer)) > 0) { out.write(buffer, 0, len); }

完整代码:

package com.cherriesovo.servlet; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.FileInputStream; import java.io.IOException; import java.net.URLEncoder; public class FileServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 1. 要获取下载文件的路径 String realPath = "F:\\JavaWeb\\WorkSpace\\JavaWeb-Servlet\\Response\\src\\main\\resources\\1.png"; System.out.println("下载文件的路径:" + realPath); // 2. 下载的文件名是啥? String fileName = realPath.substring(realPath.lastIndexOf("\\") + 1); // 3. 设置想办法让浏览器能够支持(Content-Disposition)下载我们需要的东西,中文文件名URLEncoder.encode编码,否则有可能乱码 resp.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8")); // 4. 获取下载文件的输入流 FileInputStream in = new FileInputStream(realPath); // 5. 创建缓冲区 int len = 0; byte[] buffer = new byte[1024]; // 6. 获取OutputStream对象 ServletOutputStream out = resp.getOutputStream(); // 7. 将FileOutputStream流写入到buffer缓冲区,使用OutputStream将缓冲区中的数据输出到客户端! while ((len = in.read(buffer)) > 0) { out.write(buffer, 0, len); } in.close(); out.close(); } }

 


__EOF__

本文作者CherriesOvO
本文链接https://www.cnblogs.com/zyj3955/p/18026645.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   CherriesOvO  阅读(612)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2022-02-22 Spark框架——WordCount案例实现
点击右上角即可分享
微信分享提示