Как создать ссылку для скачивания QR-кода? - PullRequest
2 голосов
/ 17 февраля 2012

Я использую QR API Google для создания 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')); 

Ответы [ 2 ]

3 голосов
/ 18 февраля 2012

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

Помните, что 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');
1 голос
/ 18 февраля 2012

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

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

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

...