上传多个文件和元数据的最佳方式是什么?
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));
我需要上传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));