如何在客户端将base64内容转换为文件对象并将其发送到控制器

时间:2018-11-09 06:04:47

标签: javascript

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

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

1 个答案:

答案 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');`