Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 将二进制图像保存到文件_Node.js - Fatal编程技术网

Node.js 将二进制图像保存到文件

Node.js 将二进制图像保存到文件,node.js,Node.js,我提出了一个API请求。如何将其保存到我的计算机上的类似于photo.png的文件中?在做一些研究时,我尝试了以下方法,但当我打开图像时,我的机器显示它已损坏: const buffer = new Buffer(imageBinary); const b64 = buffer.toString("base64"); const path = `temp/${userId}`; const url = path + "/photo.png"; if (!fs.existsSync(path))

我提出了一个API请求。如何将其保存到我的计算机上的类似于
photo.png
的文件中?在做一些研究时,我尝试了以下方法,但当我打开图像时,我的机器显示它已损坏:

const buffer = new Buffer(imageBinary);
const b64 = buffer.toString("base64");
const path = `temp/${userId}`;
const url = path + "/photo.png";
if (!fs.existsSync(path)) fs.mkdirSync(path);
if (fs.existsSync(url)) fs.unlinkSync(url)
fs.createWriteStream(url).write(b64);
return url;

编辑:以下是二进制数据供参考:

您不需要将缓冲区重新编码为base64。只需按原样写入二进制缓冲区:

fs.createWriteStream(url).write(imageBinary);

您不需要将缓冲区重新编码为base64。只需按原样写入二进制缓冲区:

fs.createWriteStream(url).write(imageBinary);

base64编码的字节缓冲区不会被PNG解码器解释。
imageBinary
的格式是什么?你为什么要用base64编码?@zero298我只是在关注另一个网站。我想格式是.jpeg,我也测试过。我编辑了我的帖子以包含二进制文件。你能发布你下载图片的url吗?它需要身份验证。你可以看到一个样品。只需按右边的runquery。base64编码的字节缓冲区不会被PNG解码器解释。
imageBinary
的格式是什么?你为什么要用base64编码?@zero298我只是在关注另一个网站。我想格式是.jpeg,我也测试过。我编辑了我的帖子以包含二进制文件。你能发布你下载图片的url吗?它需要身份验证。你可以看到一个样品。只需按右边的运行查询。@AskYous尝试调用文件上的
file
命令,看看它报告了什么。它刚刚输出:
photo.jpeg:data
。我在我的帖子中添加了二进制字符串。@AskYous尝试调用文件上的
file
命令,看看它报告了什么。它刚刚输出:
photo.jpeg:data
。我添加了我的帖子中的二进制字符串。