在 Web 应用程序开发过程中,文件上传是很常见的操作。在 Deno 中,我们可以使用标准的 Web API 暴露的 FormData 对象来实现文件的上传。
FormData 对象
FormData 对象是一种表示表单数据的键值对集合。可以通过 JavaScript FormData API 进行管理。使用 FormData API 可以通过 AJAX 将表单数据发送到服务器,也可以通过表单元素创建 FormData 对象。
在 Deno 中,我们可以直接使用 FormData API 来创建表单数据对象。下面是一个简单的例子:
const formData = new FormData(); formData.append("username", "jack"); formData.append("password", "secret");
在这个例子中,我们创建了一个 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