Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.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
从图像URL javascript html保存图像文件_Javascript_Html - Fatal编程技术网

从图像URL javascript html保存图像文件

从图像URL javascript html保存图像文件,javascript,html,Javascript,Html,我是JS和HTML的初学者。 我正在做一个生成饼图的项目,我正在使用带有HTML API的google图表 我设法制作了图表,并得到了图片的URL。 当我打这个电话时: window.open(URL) 将打开一个包含该图片的新窗口。 我的问题是,是否有一种类似的方法可以获取URL并将图像下载到项目文件夹中? 类似于下载(URL,'PNG')甚至下载(URL)?据我所知,在Javascript中没有实现这一点的方法(我可能完全错了),因此您可以使用HTML5 HTML5: 您可以在此处获得此标

我是JS和HTML的初学者。 我正在做一个生成饼图的项目,我正在使用带有HTML API的google图表

我设法制作了图表,并得到了图片的URL。 当我打这个电话时:
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