Javascript如何将base64URL转换为文件?

Javascript如何将base64URL转换为文件?,javascript,file,express,mongoose,urlencode,Javascript,File,Express,Mongoose,Urlencode,我正在从数据库中检索文件数据,我需要发送到前端(我的前端有下载操作来下载文件)如何将这些类型的url转换为文件。我希望它可以用于任何文件类型(doc、txt、jpg、pdf、zip…) 这是我的实现。它适用于txt,但由于某些原因,它不适用于jpg和其他文件类型。有人能帮我解决这个问题吗?(我想可能是编码或解码的问题)谢谢:) 您可以使用content=newbuffer(content,'base64') 如果要将其保存到文件中,可以使用以下方法: /*name是要保存文件的文件名*/ wri

我正在从数据库中检索文件数据,我需要发送到前端(我的前端有下载操作来下载文件)如何将这些类型的url转换为文件。我希望它可以用于任何文件类型(doc、txt、jpg、pdf、zip…)

这是我的实现。它适用于txt,但由于某些原因,它不适用于jpg和其他文件类型。有人能帮我解决这个问题吗?(我想可能是编码或解码的问题)谢谢:)


您可以使用
content=newbuffer(content,'base64')

如果要将其保存到文件中,可以使用以下方法:

/*name是要保存文件的文件名*/
writeFile(名称,内容,{encoding:'base64'},函数(err){
if(err)console.log('err',err);
console.log('success');
});

尝试下面的方法,希望这能奏效:-

//返回与文件实例解析的承诺
函数urltoFile(url、文件名、mimeType){
返回(获取(url)
.then(函数(res){return res.arrayBuffer();})
.then(函数(buf){返回新文件([buf],文件名,{type:mimeType});})
);
}
//用法示例:
urltoFile('data:text/plain;base64,aGVsbG8gd29ybGQ=','hello.txt','text/plain')
.then(函数(文件){console.log(文件);})
"data:text/plain;charset=utf-8;base64,MzQuNjIzNjU..................."
        let mime = file.url.split(',')[0].split(':')[1].split(';')[0];
        console.log(mime);
        let content = unescape(encodeURIComponent(file.url.split(',')[1]));
        content = Buffer.from(content, 'base64').toString();

        console.log(content);

        let temp = mime + ";charset=UTF-8";
        res.set('Content-Type', temp);
        res.set('Content-Disposition','attachment; filename=' + file.name );
        res.send(content);