我应该如何在 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 中将道具传递给数据对象