要在 Deno 中接收文件上传,请使用 Request 对象的 formData 方法。
import { serve } from "https://deno.land/std@0.158.0/http/server.ts";
serve(async (req) => {
const data = await req.formData();
const file = data.get("file");
const bytes = await new Response(file).arrayBuffer();
const size = bytes.byteLength;
console.log("Received file", file.name);
console.log("byte size =", size);
return Response.json({ filename: file.name, size });
});
await req.formData() 的 Web 标准 API表单数据可以获得对象。
data.get("file") 致电,文件可以获取对象(这个文件也是一个Web标准的API文件)。
使用await new Response(file).arrayBuffer() 提取文件的内容。这个字节串(Uint8Array类型)就是文件的内容,所以可以用它来实现保存或处理等必要的处理。
在上述服务器运行的情况下,您可以使用以下 curl 命令检查行为(假设文件 file.pdf 位于当前目录中)。
$ curl -i http://localhost:8000 -F "file=@file.pdf"
HTTP/1.1 100 Continue
HTTP/1.1 200 OK
content-type: application/json
vary: Accept-Encoding
content-length: 37
date: Sat, 01 Oct 2022 11:22:15 GMT
{"filename":"file.pdf","size":375676}
原创声明:本文系作者授权爱码网发表,未经许可,不得转载;
原文地址:https://www.likecs.com/show-308628052.html