Как установить имя для сохранения по умолчанию для изображения, созданного в PHP? - PullRequest
4 голосов
/ 17 ноября 2010

это мой код.

<?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');
?>

Я создаю подарочные карты Visa, изображение также создается и отображается на странице. Но моя проблема в том, что когда я хочу сохранить это изображение в Mozilla, оно дает «page_name.png», а в IE - «Без названия» Как я могу дать свое собственное имя, например "visa_gift_01.png", при сохранении.

Ответы [ 4 ]

5 голосов
/ 17 ноября 2010

Прочтите документ Это объясняет, как изменить заголовок http

header('Content-Disposition:attachment;filename="visa_gift_01.png"');
4 голосов
/ 17 ноября 2010

Вы можете отправить дополнительный HTTP заголовок для установки имени загрузки:

// Change the download name to visa_gift_01.png
header('Content-Disposition: attachment; filename="visa_gift_01.png"');
0 голосов
/ 23 января 2019

Чтобы отобразить изображение в браузере, но при этом указать имя файла, когда пользователь щелкает его правой кнопкой мыши и выбирает «Сохранить как ...», вот что вам нужно:

header('Content-Disposition: Inline; filename="'.$filename.'"');

Использование Inline вместо Attachment является ключевым отличием от других ответов, которое приводит к загрузке изображения вместо отображения в браузере при загрузке страницы.

0 голосов
/ 17 ноября 2010

Вам нужно добавить еще один заголовок:

header('Content-Disposition: attachment; filename="'.$name.'"');

Должно быть достаточно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...