我正在使用以下代码将文件列表发送到后端:
var formdata = new FormData();
if(fileObjectList.length>0){
Object.keys(fileObjectList).forEach(i => {
formdata.append('file' + i, fileObjectList[i]);
});
}
formdata.append('requestModel', JSON.stringify(request));
req.open("POST", 'contorller');
req.send(formdata);
控制器将文件转换为base64数据。
要通过电子邮件发送数据,我们必须将内容附加为base64, 再次将其作为文件对象发送给控制器。
答案 0 :(得分:0)
您可以使用jszip在zip中添加文件,并在单个请求中将整个文档作为base64发送。检查下面的链接以获取更多信息jszip
var jszip = new ZipHandler;
var formdata = new FormData();
if(fileObjectList.length>0){
Object.keys(fileObjectList).forEach(i => {
jszip.addFile(`${fileObjectList[i]}.fileTypeExt`, '(buffer|base64)');
});
};
var zipcomplete = await t.generate({
base64: !0,
compression: "DEFLATE"
});
formdata.append('fileDataZip', zipcomplete);
formdata.append('requestModel', JSON.stringify(request));
req.open("POST", 'contorller');
req.send(formdata)
使用C#使用以下代码保存base64文件
`System.IO.File.WriteAllBytes("/fileDataZip.zip", Convert.FromBase64String(fileDataZip));`
使用nodejs通过以下代码保存base64文件
`require("fs").writeFile("fileDataZip.zip", fileDataZip, 'base64');`