21xrx.com
2024-11-08 23:23:10 Friday
登录
文章检索 我的文章 写文章
Java Web实现文件下载功能步骤及示例代码
2023-06-13 02:18:17 深夜i     --     --
Java Web

在Java Web开发中,实现文件下载功能十分常见。而如何在Web应用程序中实现文件下载功能,则是至关重要的问题。本文将详细介绍Java Web如何实现文件下载功能,并附有示例代码,帮助读者快速上手实现文件下载功能。

实现步骤:

1.确认下载文件的路径;

2.获取到要下载的文件的名称,例如下载文件保存在服务器上的名字为test.zip;

3.设置Content-Disposition响应头以及Content-Type响应头;

4.读取文件并输出内容,实现文件下载。

示例代码:

@WebServlet("/download")

public class DownloadServlet extends HttpServlet {

  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    String path = "C:\\download\\test.zip";

    String fileName = "test.zip";

    File file = new File(path);

    if(!file.exists()){

      request.setAttribute("message", "下载的文件为空或不存在!");

      request.getRequestDispatcher("message.jsp").forward(request, response);

      return;

    }

    //设置响应头及编码

    response.setHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));

    response.setHeader("Content-Type", "application/octet-stream;charset=UTF-8");

    response.setHeader("Content-Length", String.valueOf(file.length()));

    byte[] buffer = new byte[2048];

    int len;

    try(

      InputStream inputStream = new FileInputStream(file);

      OutputStream outputStream = response.getOutputStream();

    )

    {

      while ((len = inputStream.read(buffer)) > 0) {

        outputStream.write(buffer, 0, len);

      }

    }

    catch (Exception e) {

      request.setAttribute("message", "文件下载失败!");

      request.getRequestDispatcher("message.jsp").forward(request, response);

    }

  }

}

、文件下载、Content-Disposition响应头、Content-Type响应头、Servlet、文件流。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复