Как создать ссылку для скачивания QR-кода?

Я использую QR Google API для создания QR-кодов, но хотел бы иметь возможность загружать изображение в PHP. Я искал в Интернете, но не могу найти ничего полезного. Какие-либо предложения?

Я создаю QR-код следующим образом:

function generateQR($url, $width = 150, $height = 150) {
    $url    = urlencode($url);
    $image  = '<img src="http://chart.apis.google.com/chart?chs='.$width.'x'.$height.'&cht=qr&chl='.$url.'" alt="QR code" width="'.$width.'" height="'.$height.'"/>';
    return $image;
}

echo(generateQR('http://google.com')); 

person Paul    schedule 17.02.2012    source источник
comment
Возможно актуально: stackoverflow.com/ вопросы/900207/   -  person Charles Sprayberry    schedule 17.02.2012
comment
Не уверен, что вы имеете в виду под загрузкой изображения в PHP. Конечно, вам нужно закодировать URL-адрес с помощью urlencode.   -  person satoshi    schedule 17.02.2012


Ответы (2)


Вы можете использовать любую двоичную безопасную функцию для извлечения и вывода изображения с правильными заголовками.

Помните, что параметр allow_fopen_url должен быть включен в конфигурации PHP.

Что-то типа:

function forceDownloadQR($url, $width = 150, $height = 150) {
    $url    = urlencode($url);
    $image  = 'http://chart.apis.google.com/chart?chs='.$width.'x'.$height.'&cht=qr&chl='.$url;
    $file = file_get_contents($image);
    header("Content-type: application/octet-stream");
    header("Content-Disposition: attachment; filename=qrcode.png");
    header("Cache-Control: public");
    header("Content-length: " . strlen($file)); // tells file size
    header("Pragma: no-cache");
    echo $file;
    die;
}

forceDownloadQR('http://google.com');
person Guilherme Viebig    schedule 17.02.2012
comment
конечно, это должно быть отправлено до любого другого вывода, или буферизация вывода должна быть включена - person Guilherme Viebig; 18.02.2012

если вы хотите загрузить файл на свой веб-сервер (и сохранить его), просто используйте copy()

copy($url, 'myfile.png');

Это не заставит веб-браузер посетителя сохранить файл.

person goat    schedule 17.02.2012