从图像URL javascript html保存图像文件
我是JS和HTML的初学者。 我正在做一个生成饼图的项目,我正在使用带有HTML API的google图表 我设法制作了图表,并得到了图片的URL。 当我打这个电话时:从图像URL javascript html保存图像文件,javascript,html,Javascript,Html,我是JS和HTML的初学者。 我正在做一个生成饼图的项目,我正在使用带有HTML API的google图表 我设法制作了图表,并得到了图片的URL。 当我打这个电话时: window.open(URL) 将打开一个包含该图片的新窗口。 我的问题是,是否有一种类似的方法可以获取URL并将图像下载到项目文件夹中? 类似于下载(URL,'PNG')甚至下载(URL)?据我所知,在Javascript中没有实现这一点的方法(我可能完全错了),因此您可以使用HTML5 HTML5: 您可以在此处获得此标
window.open(URL)代码>
将打开一个包含该图片的新窗口。
我的问题是,是否有一种类似的方法可以获取URL并将图像下载到项目文件夹中?
类似于下载(URL,'PNG')代码>甚至下载(URL)代码>?据我所知,在Javascript中没有实现这一点的方法(我可能完全错了),因此您可以使用HTML5
HTML5:
您可以在此处获得此标记支持的浏览器列表:阅读本文(您可以在此处看到工作)
您可以调用下载文件(URL)代码>用户可以选择保存图像的位置如果您试图允许最终用户下载该图像,请查看此问题:
如果您试图下载图像以在页面中使用,为什么不使用标记并远程引用它
<img src="[url retrieved from the api]">
请记住,Javascript是在客户端运行的,因此任何下载函数都将下载到最终用户,而不是项目文件夹
编辑:对所使用的代码进行修改并进行实现。
我从“谷歌图表文档”中提取。他们是怎么做到的:
//Your data and options initialization up here
....
//Event listener
google.visualization.events.addListener(chart, 'ready', function () {
chart_div.innerHTML = '<img src="' + chart.getImageURI() + '" download="chart.png">';
console.log(chart_div.innerHTML);
});
//Actually draw the chart
chart.draw(data, options);
//您的数据和选项在这里初始化
....
//事件侦听器
google.visualization.events.addListener(图表'ready',函数(){
chart_div.innerHTML='';
log(chart\u div.innerHTML);
});
//实际绘制图表
图表绘制(数据、选项);
只需使用另一个SO链接即可完成下载过程 问题“是否有类似类型的方法获取URL并在项目文件夹中下载图像?”的答案是:
没有
原因是,任何包含Javascript的网页都不会在存储它的服务器上执行:相反,会向用户浏览器发送一份副本,用户浏览器会在用户PC上运行该副本;此副本不知道服务器上的项目文件夹。在服务器上保存在用户PC上本地创建的图像的唯一方法是将图像上载到服务器,例如,.PHP脚本在服务器上等待数据;这样的PHP脚本在服务器上运行,因此它可以将接收到的图像存储在项目文件夹中
此javascript代码段将图像数据发送到远程PHP文件:
$.post("http://www.example.com/image-saver.php",
{
imgdata: imgData,
pass: "mypass"
}
但在调用脚本时,图像必须已经存在于页面中,这需要一点时间才能加载,因此上述脚本必须包含在一个函数中,该函数仅在页面完成加载后激活:
window.onload = function() {
$.post("http://www.example.com/image-saver.php",
{
imgdata: imgData,
pass: "mypass"
}
};
例如,可以通过将保存图像的画布中包含的数据转换为URL来创建“imgData”:
imgData = canvas.toDataURL('image/png');
因此,在“php”和“toDataURL”的特定情况下,完整的源代码是:
<script src="jquery.js"></script>
<script>
window.onload = function() {
imgData = canvas.toDataURL('image/png');
$.post("http://www.example.com/image-saver.php",
{
imgdata: imgData,
pass: "mypass"
}
};
</script>
window.onload=函数(){
imgData=canvas.toDataURL('image/png');
$.post(”http://www.example.com/image-saver.php",
{
伊姆格达塔:伊姆格达塔,
通行证:“我的通行证”
}
};
这些数据将由服务器上的image-saver.php脚本读取:
$data = $_POST['imgdata'];
$pass = $_POST['pass'];
if ($pass == "mypass") {
$img = imagecreatefromstring(base64_decode(substr($data,strpos($data,',')+1)));
$result = imagepng($img,"image.png");
die($img);
echo "Result: " . $result . "<br>";
} else {
echo "Nice attempt.";
}
$data=$\u POST['imgdata'];
$pass=$_POST['pass'];
如果($pass==“mypass”){
$img=imagecreatefromstring(base64_解码(substr($data,strpos($data,,'))+1));
$result=imagepng($img,“image.png”);
死亡(百万美元);
echo“Result:.$Result.”
“;
}否则{
回声“很好的尝试。”;
}
我想没有问题,我希望最终用户下载它,我只使用HTML生成图表。为了更好地理解,这里是我的HTML代码。我也是Markdown的初学者,所以Idk如何嵌入图像url:d检查这个,来自Google Charts文档:抱歉迟到:/simple,effect.+1