Express.js 如何实现文件下载功能

阅读时长 4 分钟读完

在前端开发中,我们经常需要实现文件下载功能,例如下载用户上传的图片、用户生成的文件等。使用 Express.js 可以非常方便地实现文件下载功能。

本文将介绍如何使用 Express.js 实现文件下载功能,并提供示例代码和详细的指导说明。

实现步骤

  1. 在 Express.js 中引入 fs 模块,用于读取文件数据。

  2. 定义文件下载路由,并通过路由参数获取要下载的文件名。

    -- -------------------- ---- -------
    ------------------------------ ----- ---- -- -
      ----- -------- - --------------------
      -- ----
      ----- -------- - ----------- - ---------
      -- --------
      ------------------- -------- -- -
        -- -------- -
          -- -----
          ----------------------------- ----------------------------
          ------------------------------------ ------------ ---------- - ----------
          -- -------------
          ----------------------------------------
        - ---- -
          -- -------- --- --
          -------------------------- --- --------
        -
      ---
    ---

    在代码中,我们首先通过路由参数获取要下载的文件名,然后拼接出文件路径。接着我们使用 Node.js 的 fs.exists 函数检查文件是否存在,如果存在则设置响应头,读取文件数据并发送到客户端;如果不存在则返回 404 错误。

  3. 在前端页面上添加文件下载链接,并将文件名作为参数传递给文件下载路由。

    在以上示例代码中,我们通过 <a> 标签创建了一个文件下载链接,并将文件名 myfile.png 作为参数传递给文件下载路由。

示例代码

以下是一个完整的 Express.js 文件下载示例代码:

-- -------------------- ---- -------
----- ------- - -------------------
----- -- - --------------

----- --- - ----------

-- ------
------------------------------ ----- ---- -- -
  ----- -------- - --------------------
  -- ----
  ----- -------- - ----------- - ---------
  -- --------
  ------------------- -------- -- -
    -- -------- -
      -- -----
      ----------------------------- ----------------------------
      ------------------------------------ ------------ ---------- - ----------
      -- -------------
      ----------------------------------------
    - ---- -
      -- -------- --- --
      -------------------------- --- --------
    -
  ---
---

---------------- -- -- -
  ------------------- -- ------- -- ------------------------
---

注意事项

  • 要下载的文件必须存在于服务器上的可访问路径下。
  • 在设置响应头时,必须将 Content-Type 设置为 application/octet-stream,这样浏览器就会弹出文件下载框。
  • 响应头中的 Content-Disposition 设置为 attachment 时,浏览器会将文件作为附件进行下载。

总结

通过本文的介绍,我们学习了如何使用 Express.js 实现文件下载功能,并提供了详细的示例代码和指导说明。文件下载功能是很常见的前端开发需求,在实际开发中也必不可少。希望本文能够对读者有所帮助,为实现文件下载功能提供指导。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64881fac48841e98946a0a80

纠错
反馈