Deno 中的文件上传

阅读时长 4 分钟读完

在 Web 应用程序开发过程中,文件上传是很常见的操作。在 Deno 中,我们可以使用标准的 Web API 暴露的 FormData 对象来实现文件的上传。

FormData 对象

FormData 对象是一种表示表单数据的键值对集合。可以通过 JavaScript FormData API 进行管理。使用 FormData API 可以通过 AJAX 将表单数据发送到服务器,也可以通过表单元素创建 FormData 对象。

在 Deno 中,我们可以直接使用 FormData API 来创建表单数据对象。下面是一个简单的例子:

在这个例子中,我们创建了一个 FormData 对象,并将两个键值对添加到集合中。

文件上传

要上传文件,我们需要在表单中添加一个 file 类型的 input 控件,并在上传时将其值传递给服务器。提交表单时,将文件数据添加到 FormData 对象中。文件上传的代码示例如下:

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

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

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

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

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

-------- ----------------------- ------- -
  ----- ------------- - -----------------------
  ----- ------- - -------------------------------- -- -
    ----- ----- ------ - ------------------------
    ------ ----- ---------------------------
  ---
  ------ ----------------------------
-
展开代码

在这个例子中,我们使用 Deno 的标准库中的 serve 方法创建了一个简单的 Web 服务器。当请求 URL 为 /upload 且请求方法为 POST 时,我们从请求中读取 FormData 对象,并获取 avatar 键对应的文件数据。如果文件数据存在,我们将其写入指定的目录中,同时返回上传成功的响应;否则,我们返回包含错误信息的响应。

代码中的 readFormData 方法用于从请求中读取 FormData 对象,它首先将请求中的消息体转换为字符串,然后解析出其中的键值对,从而创建一个新的 FormData 对象。

结语

在 Deno 中实现文件上传非常容易。借助标准的 Web API,我们可以快速地编写可靠的文件上传功能。

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

纠错
反馈

纠错反馈