-1

我正在使用以下代码将文件列表发送到后端:

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,我再次将其作为文件对象发送到控制器。

4

1 回答 1

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');
于 2018-11-09T06:30:31.660 回答