这是我的代码。
<?php
function generate_card($card_number='',$card_price='',$card_expire='',$image_path='',$font_path)
{
// store image on variable //
$image = imagecreatefrompng($image_path);
// some text color
$color = imagecolorallocate($image, 255, 255, 0);
// print card price //
imagettftext($image, 15, 0, 200, 40, $color, $font_path, $card_price);
// print card number //
imagettftext($image, 15, 0, 15, 85, $color, $font_path, $card_number);
// print expiry date //
imagettftext($image, 12, 0, 145, 155, $color, $font_path, $card_expire);
header('Content-type:image/png');
imagepng($image);
imagedestroy($image);
}
generate_card('1234 5678 9101 1121','$200','12/13','card.png','verdana.ttf');
?>
我正在生成签证礼品卡,图片也会在页面上创建和显示。但我的问题是,当我想在Mozilla中保存这个图像时,它会给出“page_name.png”,在IE中它给了我“无标题”。 如何在保存时给出自己的名字,如“visa_gift_01.png”。
答案 0 :(得分:5)
阅读此document 它解释了如何修改http标头
header('Content-Disposition:attachment;filename="visa_gift_01.png"');
答案 1 :(得分:4)
您可以发送额外的HTTP header来设置下载名称:
// Change the download name to visa_gift_01.png
header('Content-Disposition: attachment; filename="visa_gift_01.png"');
答案 2 :(得分:0)
您需要添加的是另一个标题:
header('Content-Disposition: attachment; filename="'.$name.'"');
应该足够了。
答案 3 :(得分:0)
为了在浏览器中显示图像,但仍提供用户右键单击图像并选择“另存为...”时的文件名,这就是您想要的:
header('Content-Disposition: Inline; filename="'.$filename.'"');
使用Inline
而不是Attachment
是与其他答案的主要区别,这将导致在加载页面时下载图像而不是在浏览器中显示图像。