Небольшой файл в QR-код - PullRequest
       17

Небольшой файл в QR-код

2 голосов
/ 12 декабря 2011

Я в основном пытаюсь использовать Google QR Code API для создания QR-кода из массива байтов. Я пытался передать веб-интерфейсу Google массив байтов для переменной 'chl' (данные для QR-кода), но, похоже, это никогда не нравилось. Я использовал пример PHP от Google в качестве основы для своего кода, но если кто-то знает альтернативный способ простого преобразования массива байтов в QR-код с помощью API Google, это единственная цель.

<?php
// Create some random text-encoded data for a QR code.
//header('content-type: image/png');    
$url = 'https://chart.googleapis.com/chart?chid=' . md5(uniqid(rand(), true));
$chd = file($_FILES["file"]["tmp_name"]);

// Add image type, image size, and data to params.
$qrcode = array(
'cht' => 'qr',
'chs' => '300x300',
'choe' => 'ISO-8859-1',
'chl' => $chd);


// Send the request, and print out the returned bytes.
$context = stream_context_create(
array('http' => array(
  'method' => 'POST',
  'content' => http_build_query($qrcode))));
fpassthru(fopen($url, 'r', false, $context));
?>

Это PHP, обрабатывающий загруженный файл и отправляющий в API Google через байтовый массив.

Ответы [ 2 ]

1 голос
/ 12 декабря 2011

Функция file () выдает массив строк, разбитых на новые строки.Я думаю, что вы просто хотите строку.см. file_get_contents ()

. Убедитесь, что

echo http_build_query($qrcode);

, чтобы помочь вам в отладке.

0 голосов
/ 13 декабря 2011

Вы не можете закодировать байтовый массив, используя Google Chart Server - он работает со строками. Я думаю, что это доблестные попытки взломать эту проблему, но в итоге они не сработают по той причине, которую вы нашли.

Вы должны просто использовать кодировщик в проекте zxing локально. Он также работает со строками, но на самом деле вы можете легко изменить или внедрить вызов, который указывает байтовый массив непосредственно таким образом.

...