要在 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

相关文章:

  • 2022-12-23
  • 2021-06-12
  • 2022-12-23
  • 2021-05-27
  • 2022-01-16
  • 2021-09-20
  • 2022-12-23
猜你喜欢
  • 2021-10-12
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-02
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案