我应该如何在 typescript 中将 Blob/File 数组附加到 formData? [复制]

Posted

技术标签:

【中文标题】我应该如何在 typescript 中将 Blob/File 数组附加到 formData? [复制]【英文标题】:How am I supposed to append a Blob/File array to formData in typescript? [duplicate] 【发布时间】:2020-11-11 03:05:50 【问题描述】:

如果我没有文件数组,这会很好。但它必须是一个数组。

  let file1 = new File([""], "filename");
  let file2 = new File([""], "filename");
  let files = [file1, file2];
  let formData = new FormData();
  formData.append('files', files);

这在 javascript 中工作得很好。在打字稿中我得到这个错误。

TS2345: Argument of type 'Blob[]' is not assignable to parameter of type 'string | Blob'.   Type 'Blob[]' is not assignable to type 'string'.

除了 // @ts-ignore 我还能做什么?

另外,我正在使用的其他 api 要求 formData 是一个 Blob/文件数组,所以我不能在那里更改任何内容。

【问题讨论】:

@KunalMukherjee 不,这个例子只有一个文件,但我的问题是 FormData 想要一个 Blob 或字符串,而不是 Blob 数组。 试试formData.append('files', files as unknown as Blob); 【参考方案1】:

您可能必须这样做:

let file1 = new File([""], "filename");
let file2 = new File([""], "filename");
let files = [file1, file2];
let formData = new FormData();
for (let file of files)
    formData.append('files', file);

你会告诉我这是否有效吗?

我认为这是基于这里的讨论的原因:How use formData.append for a array in typescript

【讨论】:

以上是关于我应该如何在 typescript 中将 Blob/File 数组附加到 formData? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 typescript/javascript 中将 123456789 转换为 123***789?

在 Vue 3 Typescript 中将道具传递给数据对象

如何在颤动中将 Blob 转换为图像

如何在 JavaScript 中将 Blob 转换为文件

如何在 Azure 逻辑应用中将 blob 文件内容转换为 .docx

DPFPApi 如何在 qt5 中将 data_blob 转换为 qpixmap