1

我有一个示例代码:

发布数据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 ???';
}

如何将图像保存到我的计算机,而不是保存在网站中?

4

2 回答 2

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 ???';
}
?>
于 2013-10-30T03:02:40.547 回答
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);
于 2013-10-30T02:58:16.957 回答