PHP imagejpeg - 触发器下载

时间:2018-02-04 19:26:06

标签: php imagejpeg

我正在使用PHP imagejpeg创建一个像这样的简单图像..

// Create a blank image and add some text
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);

// Set the content type header - in this case image/jpeg
header('Content-Type: image/jpeg');

// Output the image
imagejpeg($im);

// Free up memory
imagedestroy($im);

这是有效的,但我希望它能在浏览器内自动触发下载,而不是显示图像。

我该怎么做呢,我需要设置标题吗?

2 个答案:

答案 0 :(得分:0)

您需要做的就是设置一个额外的标题:

// Create a blank image and add some text
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 1, 5, 5,  'A Simple Text String', $text_color);

// Set the content type header - in this case image/jpeg
header('Content-Type: image/jpeg');
header('Content-Disposition: attachment; filename=file-name.jpg'); // This will tell the browser to download it

// Output the image
imagejpeg($im);

// Free up memory
imagedestroy($im);

Here是文档

答案 1 :(得分:0)

我相信你至少需要3个标题:

header("Content-Type: image/jpeg"); // Content type
header("Content-Disposition: attachment; filename=file-name.jpg"); // Content deposition
header("Content-Length: $fileSize"); // YOUR FILE SIZE

否则,下载将无法在Firefox中运行。