zoukankan      html  css  js  c++  java
  • javaWeb学习笔记之关于Servlet文件下载

    下载文件步骤

    1. 获取下载文件的路径
    2. 获取下载文件的文件名
    3. 让浏览器支持我们要下载的东西
    4. 获取下载文件的输入流
    5. 创建缓冲区
    6. 获取OutputStream
    7. 将FileOutputStream流写入到buffer缓冲区中
    8. 使用OutputStream将缓冲区中的数据输出到客户端

    代码示例:

    public class FileDownloadServlet extends HttpServlet {
    
        @Override
        protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
            //1.获取要下载文件的路径
            String path = "C:\Users\admin\Pictures\1.png";
            System.out.println("下载文件的路径:"+ path);
            //2.下载的文件名是什么
            String fileName = path.substring(path.lastIndexOf("\") + 1);
            //2.设置方法让浏览器能够支持(Content-Disposition)下载我们需要的东西,中文文件名URLEncoder.encode编码,否则有可能乱码
            resp.setHeader("Content-Disposition","attachment;fileName="+ URLEncoder.encode(fileName, "UTF-8"));
            //4.获取下载文件的输入流
            FileInputStream inputStream = new FileInputStream(path);
            //5.创建缓冲区
            int len = 0;
            byte[] buffer = new byte[1024];
            //6.获取outputStream对象
            ServletOutputStream out = resp.getOutputStream();
            //7.将FileOutputStream流写入到buffer缓冲区,使用OutputStream将缓冲区中的数据输出到客户端
            while ((len = inputStream.read(buffer))>0){
                out.write(buffer, 0 ,len);
            }
            inputStream.close();
            out.close();
        }
    }
    
    

    web.xml文件示例:

    <servlet>
        <servlet-name>fileDownload</servlet-name>
        <servlet-class>test.FileDownloadServlet</servlet-class>
      </servlet>
    
      <servlet-mapping>
        <servlet-name>fileDownload</servlet-name>
        <url-pattern>/fileDownload</url-pattern>
      </servlet-mapping>
    
  • 相关阅读:
    汇编指令(它不区分大小写)
    汇编
    LINUX命令
    LInux 终端命令
    回文串的Manacher算法
    hdu3336 Counting the string kmp的next数组的应用
    hdu2203kmp匹配
    hdu2087kmp模板练习
    hdu1171kmp果题
    hdu1686kmp果题
  • 原文地址:https://www.cnblogs.com/yedan/p/13427742.html
Copyright © 2011-2022 走看看