Deno 中如何处理文件上传?

阅读时长 5 分钟读完

Deno 中如何处理文件上传?

随着前端技术的日益发展,越来越多的网站都需要实现文件上传功能。在 Deno 中,处理文件上传也变得更加简单和灵活。本文将介绍如何用 Deno 处理文件上传。

  1. 使用 Deno 的标准库

在 Deno 中,我们可以使用标准库中的 multipart 模块来处理文件上传。下面是一个使用 multipart 模块实现文件上传的示例代码:

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

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

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

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

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

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

上述代码创建了一个服务器的实例,监听 8000 端口的请求。当请求方法为 POST 时,使用 req.formData() 方法获取表单数据,并使用 FormDataReader 解析表单数据中的文件。FormDataReader 通过迭代器的方式依次处理表单数据中的每个文件,可对每个文件进行流式处理。

  1. 使用第三方库

除了标准库,我们也可以使用第三方库来处理文件上传。比如 oak 库就提供了一个方便的上传中间件。下面是一个使用 oakoak-middleware 库实现文件上传的示例代码:

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

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

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

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

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

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

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

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

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

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

上述代码与第一种方式有所不同。我们使用了 oak 库来创建应用程序和路由。通过配置上传中间件 UploadMiddleware,我们将文件上传目录设置为 ./uploads,这样所有上传的文件都会被存储在该目录下。当上传成功时,我们可以通过 formData.files 获取文件对象,进而对文件进行处理。

总结

在 Deno 中,处理文件上传变得更加简单和灵活。我们可以使用标准库的 multipart 模块,也可以使用第三方库 oak 中的中间件来处理文件上传。值得注意的是,上传的文件可能会占用大量磁盘空间,需要及时清理不必要的文件,以避免磁盘满盈。

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

纠错
反馈