Deno 中如何处理文件上传?
随着前端技术的日益发展,越来越多的网站都需要实现文件上传功能。在 Deno 中,处理文件上传也变得更加简单和灵活。本文将介绍如何用 Deno 处理文件上传。
- 使用 Deno 的标准库
在 Deno 中,我们可以使用标准库中的 multipart
模块来处理文件上传。下面是一个使用 multipart
模块实现文件上传的示例代码:
-- -------------------- ---- ------- ------ - ----- - ---- --------------------------------------- ------ - -------------- - ---- ------------------------------------------ ----- ------ - ------- ----- ---- --- ------------------- --------- -- ------------------------ --- ----- ------ --- -- ------- - -- ----------- --- ------- - ----- -------- - ----- --------------- ----- -------------- - --- ------------------------- --- ----- ------ ---- -- --------------------- - ----- -------- - ----- ------------------- ---------------------- - ------------- ----- ----- --------- --- - ---- - ------------- ----- -------- -------- --- - -
上述代码创建了一个服务器的实例,监听 8000 端口的请求。当请求方法为 POST 时,使用 req.formData()
方法获取表单数据,并使用 FormDataReader
解析表单数据中的文件。FormDataReader
通过迭代器的方式依次处理表单数据中的每个文件,可对每个文件进行流式处理。
- 使用第三方库
除了标准库,我们也可以使用第三方库来处理文件上传。比如 oak
库就提供了一个方便的上传中间件。下面是一个使用 oak
和 oak-middleware
库实现文件上传的示例代码:
-- -------------------- ---- ------- ------ - ------------ ------ - ---- --------------------------------- ------ - ------- - ---- ---------------------------------- ------ - -- ---- ---- ------------------------------------ ------ - ------ - ---- ------------------------------------ ------ - ------------ - ---- ----------------------------------------- ------ - ------------ - ---- ----------------------------------------------- ------ - ---------------- - ---- ----------------------------------------------- ----- --- - --- -------------- ----- ------ - --- --------- ----- ---- - ------------------------------------------------ ----- ---------- - --- ------------------------- -------------- ---------------------- ---------- ----- ----- ----- -- - ----- ---------------------- ------ -- ----- ----- ----- -- - ----- -------- - ----- --------------------------- ------ --- ------ ---- -- --------------- - ----- -------- - ----- ------------------- ---------------------- - ----------------- - --------- ----- ------------ --- ------------------------- ------------------- -- ------- -- ------------------------------------------------- ----- ------------------------------------------------------
上述代码与第一种方式有所不同。我们使用了 oak
库来创建应用程序和路由。通过配置上传中间件 UploadMiddleware
,我们将文件上传目录设置为 ./uploads
,这样所有上传的文件都会被存储在该目录下。当上传成功时,我们可以通过 formData.files
获取文件对象,进而对文件进行处理。
总结
在 Deno 中,处理文件上传变得更加简单和灵活。我们可以使用标准库的 multipart
模块,也可以使用第三方库 oak
中的中间件来处理文件上传。值得注意的是,上传的文件可能会占用大量磁盘空间,需要及时清理不必要的文件,以避免磁盘满盈。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6503ec2f95b1f8cacd0ad6fe