如何使用PHP将图像保存到本地计算机?

时间:2013-10-30 02:55:10

标签: php

我有一个示例代码:

使用imageData=iVBORw0KGgoAAAANS...AAAAAElFTkSuQmCC

发布数据
$imgData = $_REQUEST['imageData'];
$data = base64_decode($imgData);
$im = imagecreatefromstring($data);
if($im !== false) {
   header('Content-Type: image/png');
   imagepng($im, 'test.png');
   imagedestroy($im);
   echo 'Success !!!';
} else {
   echo 'Failer ???';
}

如何将图像保存到我的电脑,而不是保存在网站上?

2 个答案:

答案 0 :(得分:0)

如果你这样做:

imagepng($im, 'test.png');

您告诉imagepng()生成一个png文件并使用您提供的名称保存它。

如果您这样做:

imagepng($im);

它将生成PNG图像到输出(发送到客户端)。

你基本上只需要它,并删除echo,你不应该发送任何图像数据。

如果您想强行下载,请使用:

header('Content-Type: image/png');
header('Content-Disposition: attachment; filename="downloadme.png"');
imagepng($im);

答案 1 :(得分:0)

  

如何将图像保存到我的电脑,而不是保存在网站上?

使用标题提示下载。

<?php 
$imgData = $_REQUEST['imageData'];
$data = base64_decode($imgData);
$im = imagecreatefromstring($data);
if($im !== false) {
    // set the headers, to trigger a download
    header("Pragma: public");
    header("Expires: -1");
    header("Cache-Control: public, must-revalidate, post-check=0, pre-check=0");
    header('Content-Disposition: attachment; filename="image.png"');
    header('Content-Type: image/png');
    imagepng($im);
    imagedestroy($im);
} else {
    echo 'Failer ???';
}
?>