在 Deno 中处理文件上传和下载的完整指南

阅读时长 7 分钟读完

Deno 是一个基于 JavaScript 和 TypeScript 的运行时环境,它提供了一种安全的方式来运行 JavaScript 应用程序。在 Deno 中处理文件上传和下载是一个非常常见的任务,本文将为您提供详细的指南,以帮助您了解如何在 Deno 中处理文件上传和下载。

处理文件上传

文件上传是一个常见的任务,可以通过 HTTP 请求将文件从客户端上传到服务器。在 Deno 中,您可以使用标准的 HTTP 模块来处理文件上传。

1. 创建 HTTP 服务器

首先,您需要创建一个 HTTP 服务器,以便客户端可以将文件上传到服务器。以下是一个简单的示例,使用 Deno 的 HTTP 模块创建一个 HTTP 服务器:

2. 处理文件上传请求

一旦您创建了 HTTP 服务器,客户端可以将文件上传到服务器。以下是一个处理文件上传请求的示例:

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

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

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

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

在上面的示例中,我们使用 FormDataReader 类从请求中读取上传的文件。通过循环遍历 formData.files(),我们可以处理上传的每个文件。

3. 保存上传的文件

一旦您处理了上传的文件,您可能想将文件保存到磁盘上。以下是一个保存上传文件的示例:

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

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

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

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

在上面的示例中,我们使用 ensureDirSync 函数创建一个名为 uploads 的目录,如果该目录不存在。然后,我们使用 writeFileSync 函数将上传的文件写入到该目录中。

处理文件下载

文件下载是另一个常见的任务,可以通过 HTTP 响应将文件从服务器下载到客户端。在 Deno 中,您可以使用标准的 HTTP 模块来处理文件下载。

1. 处理文件下载请求

首先,您需要处理文件下载请求。以下是一个处理文件下载请求的示例:

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

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

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

在上面的示例中,我们检查 HTTP 请求的方法和 URL,以确定它是否是一个文件下载请求。

2. 发送文件

一旦您处理了文件下载请求,您需要将文件发送到客户端。以下是一个将文件发送到客户端的示例:

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

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

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

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

在上面的示例中,我们使用 Deno.open 函数打开要下载的文件。然后,我们使用 Headers 类创建 HTTP 响应的头部。最后,我们使用 req.respond 函数将文件发送到客户端。

结论

在本文中,我们讨论了如何在 Deno 中处理文件上传和下载。我们介绍了如何创建 HTTP 服务器、处理文件上传请求、保存上传的文件、处理文件下载请求和将文件发送到客户端。希望这篇指南对您有所帮助,并使您更加熟悉 Deno 的 HTTP 模块。

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

纠错
反馈