Deno 中如何处理文件上传

阅读时长 5 分钟读完

在 Deno 中,我们可以使用标准库中的 formidable 模块来处理文件上传,其中还依赖了 mime 模块来解析文件类型。本文将为您详细讲解如何使用这些模块来实现文件上传功能,并附有完整的示例代码。

安装模块

在开始之前,我们需要先安装 formidablemime 模块。

安装 formidable

安装 mime

实现文件上传

首先,我们需要创建一个 HTTP 服务器来接收上传的文件。

接下来,我们要在服务器中实现文件上传功能。这里我们使用 formidable 模块来处理上传请求。

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

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

上面这段代码中,我们使用 Formidable 构造函数初始化一个 Formidable 实例来解析请求中的文件。Formidableparse 方法会返回一个 Promise,它会解析出请求中的所有文件。我们从中选取第一个文件,并从中读取出其内容,然后将其写入到以时间戳命名的文件中。

给用户反馈

在实现上传功能后,我们应该给用户一些反馈来告知他们文件是否上传成功。在 HTTP 服务器中,我们可以通过 req.respond 方法来向客户端发送 HTTP 响应。

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

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

如果上传成功,我们会按照之前的方法将文件写入到本地,并向客户端发送一个响应。相反地,如果上传文件的数量为零,则我们将向客户端发送一个状态码为 400 的错误响应。这样,我们可以让用户知道他们的请求中缺少了必要的信息。

总结

在本文中,我们学习了如何使用 formidable 模块来处理文件上传,并给出了完整的示例代码。此外,我们也介绍了如何向客户端发送 HTTP 响应,使用户能够得到有关文件上传操作的反馈信息。希望本文能够对您有所帮助。

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

纠错
反馈