将图像下载到存储为变量的客户端

时间:2013-12-15 20:04:58

标签: php image download

我有一个相当基本的PHP脚本,用于通过将多个文件(使用存储在URL中的变量)合并为一个来生成图像。为了便于解释,这里是:

<?php

$images = array( $_GET['item1'], $_GET['item2'], $_GET['item3'] );

// Allocate new image
$img = imagecreatetruecolor(480, 480);
// Make alpha channels work
imagealphablending($img, true);
imagesavealpha($img, true);

foreach($images as $fn) {
    // Load image
    $cur = imagecreatefrompng($fn);
    imagealphablending($cur, true);
    imagesavealpha($cur, true);

    // Copy over image
    imagecopy($img, $cur, 0, 0, 0, 0, 480, 480);

    // Free memory
    imagedestroy($cur);
}   

header('Content-Type: image/png');  // Comment out this line to see PHP errors
imagepng($img);

?>

没问题。

我现在真的不明白该怎么做。我想将其下载到客户端的下载文件夹中,但我不知道,也找不到任何方法。

我并不特别需要有人为我这样做,但只是在正确的方向上推动这方面的资源。

我知道如何通过在我的服务器上将该文件临时存储为.png并将用户引导至该下载链接来实现此目的,但这似乎还有很长的路要走。

请帮忙吗?

-Tim

1 个答案:

答案 0 :(得分:0)

您应该将代码保存在php文件中,即 image.php 。如果用户调用此文件,则传递此类

之类的有效参数
www.example.com/image.php?item1=bild1.png&item2=bild2.png&item3=bild3.png

文件将显示在浏览器中(您不必将其保存在服务器端)。要强制下载图像,请添加其他标题:

header('Content-Disposition: Attachment;filename=image.png');