在 Deno 中实现文件上传和下载是 Web 应用程序开发中常见的任务。本文将介绍如何以简单易懂的方式实现文件上传和下载,并提供示例代码以帮助您更好地理解。
文件上传实现方法
实现文件上传可以使用 Deno 的 HTTP 模块提供的 ServerRequest
和 FormData
类。以下是该方法的简单步骤:
- 创建一个 HTTP 服务器实例,监听指定的端口。
- 在
onRequest
事件处理函数中,使用await
关键字获取请求体(即上传的文件)。 - 将请求体传递给
FormData
类,使用append
方法添加到表单数据中。 - 将表单数据保存为文件。
示例代码如下:
-- -------------------- ---- ------- ------ - ----- - ---- --------------------------------------- ------ - -------- - ---- ------------------------------------------ ----- ------ - ------- ----- ---- --- --- ----- ------ --- -- ------- - -- ----------- --- ------- - ----- -------- - --- ----------- ----- ---- - ----- ----------- --- ------ ----- ------ -- -------------------- ------------ - -------------------- ------- - --- ------ ----- ------ -- ------------------- - ----- --------- - ------ ----- --------------------------------------- --------- - ------------- ------- ---- ----- ------- --- - ---- - ------------- ------- ---- ----- ---- ---- ---- --- - -
这个示例代码在 8000
端口启动了一个 HTTP 服务器,监听客户端的请求。只有 POST
请求才能上传文件,其他请求将返回 405
状态码。上传的文件将保存在服务器的根目录中。
文件下载实现方法
实现文件下载同样可以使用 Deno 的 HTTP 模块。以下是该方法的简单步骤:
- 创建一个 HTTP 服务器实例,监听指定的端口。
- 在
onRequest
事件处理函数中,使用 Deno 的readFile
方法读取客户端请求的文件。 - 将文件内容写入响应流中,并设置适当的响应头。
示例代码如下:
-- -------------------- ---- ------- ------ - ----- - ---- --------------------------------------- ----- ------ - ------- ----- ---- --- --- ----- ------ --- -- ------- - -- ----------- --- ----- -- -------------------------------- - ----- -------- - ------------- -- ---- ----- ------- - ----- ---------------------------- ------------- ------- ---- -------- --- --------- ---------------------- ------------ ------------------- --- ----- -------- --- - ---- - ------------- ------- ---- ----- --------- --- - -
这个示例代码在 8000
端口启动了一个 HTTP 服务器,监听客户端的请求。只有 GET
请求且 URL 以 /download
开头的请求才会触发文件下载,其他请求将返回 404
状态码。文件路径和文件名可以自行进行修改。
总结
Deno 提供了丰富而灵活的 API,可以轻松实现文件上传和下载功能。通过本文的介绍和示例代码,您可以更好地理解如何在 Deno 中实现文件上传和下载的功能,并将其应用到自己的 Web 应用程序开发中。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65aa056badd4f0e0ff386c94