Javascript 从客户端[node]发送的值创建.png图像

Javascript 从客户端[node]发送的值创建.png图像,javascript,html,Javascript,Html,我正在创建highchart客户端。我需要做的是获取该图表的png并将其存储在服务器端 目前,我已经制作了highchart,获得了SVG并将其转换为PNG(如下所示): 这是我的#imageForm: <form action="/overview" id="imageForm" method="post"> <input id="graph_name" name="graph_

我正在创建highchart客户端。我需要做的是获取该图表的png并将其存储在服务器端

目前,我已经制作了highchart,获得了SVG并将其转换为PNG(如下所示):

这是我的
#imageForm

<form action="/overview" id="imageForm" method="post">
    <input id="graph_name" name="graph_name" type="hidden" value=""/>
    <input id="graph_png" name="graph_png" type="hidden" value=""/>
</form>
有没有办法做到这一点


注意:不能使用highcharts服务器端。这是之前做出的决定,我们无法返回。

您没有在fs.writeFile中指定数据类型:

fs.writeFile(graphDir+graphName+“.png”,graphPNG,'binary',函数(err){


二进制或base64切换您的数据;)

尝试了这两种方法,但仍然没有成功:(如果您使用console.log(graphPNG)您做了什么?这是一个非常长的base64编码。
数据的基础知识:
图像/png;base64,
…然后继续加载Ascii
尝试fs.writeFile(graphDir+graphName+“.png”,graphng,'base64',函数(err){
您是否遇到错误?或者该文件只是包含了错误的数据?您当前尝试的结果是什么?@ebyrob如果我的代码与上面一样,服务器会抛出500个错误。该文件已创建,但当我单击以查看该文件时,会显示错误
图像未加载。
nds希望您需要将正在上载的内容转换为二进制文件,并将其保存为正确的PNG文件。@ebyrob使用Atom打开,并显示小图标。使用记事本打开,它是Ascii格式的。如何将其转换为二进制文件最好?@ebyrob我尝试使用
atob()
从base64直接转到PNG,但运气不佳
<form action="/overview" id="imageForm" method="post">
    <input id="graph_name" name="graph_name" type="hidden" value=""/>
    <input id="graph_png" name="graph_png" type="hidden" value=""/>
</form>
function createFiles(graphName, graphPNG, callback) {
    fs.writeFile(graphDir + graphName + ".png", graphPNG, function(err) {
        if (err) {
            console.log(err);
        } else {
            console.log('File was saved!');
        }
    });
    callback(body);
}