上传多个文件和元数据的最佳方式是什么?

What is the best way to upload multiple files along with metadata?

我需要上传N个文件,每个文件都附有一些数据,比如文件收件人的姓名。

为此,我有这样的东西:

let form = new FormData();
for (let file of file_list) {
  form.append('files', file);
  form.append('metadata', JSON.stringify(file.metadata));
}

我使用简单的 axios POST 发送它,在服务器端,我使用列表中文件的索引将每个文件与其元数据进行匹配。
它有效但不是超级可靠。

是否有可靠的方法来上传文件列表以及附加的元数据?

我宁愿避免转换为 base64,因为文件的大小已经非常大了。

附加文件时,您可以使用第三个参数设置文件名。

通过生成一个唯一的名称,您可以将它与您的元数据相关联。

 let uniqueId = 0;
 const metadata = {};
 for (let file of file_list) {
    uniqueId++;
    const fileName = `file-${uniqueId}.bin`;
    form.append('files', file, fileName);
    metadata[fileName] = file.metadata;
 }
 form.append('metadata', JSON.stringify(metadata));