php отправляет двоичный ответ curl клиенту

0

Я использую php curl для отправки запроса REST на геосервер и получения двоичного ответа.

 $curl = curl_init();
    $url = 'http://localhost:8080/geoserver/worksp/wms';
    $query_str = "service=WMS&LAYERS=" . $_GET['LAYERS'] . "&TRANSPARENT=" . $_GET['TRANSPARENT'] . "&VERSION=" . $_GET['VERSION'] . "&REQUEST=" . $_GET['REQUEST'] . "&STYLES=" . $_GET['STYLES'] ;
    $query = $url . '?' . $query_str;
    //var_dump($query);
    curl_setopt_array($curl, array(
        CURLOPT_RETURNTRANSFER => 1,
        CURLOPT_URL => $query,
        CURLOPT_USERAGENT => 'Codular Sample cURL Request',
        CURLOPT_BINARYTRANSFER => true,
        CURLOPT_HEADER => false
    ));
    set_time_limit(30);                     // set time in secods for PHP
    curl_setopt($curl, CURLOPT_TIMEOUT, 30);
    curl_setopt($curl, CURLOPT_USERPWD, "admin:geoserver");
    $response = curl_exec($curl);
    curl_close($curl);

сервер отправляет мне png-изображение в виде двоичных данных, и я сохраняю его в переменной $response.
Теперь $response в приведенном выше коде представляет собой двоичные данные png-изображения. как я могу отправить его клиенту, не сохраняя его как файл?
Другой вопрос: что такое тип данных $response?

  • 0
    Какой вывод у var_dump($response);
  • 0
    выходные данные var_dump: PNG) Мэтью: »« ـ «» «ـ» «ـ«,;,;
Показать ещё 1 комментарий
Теги:
curl
rest
geoserver
wms

1 ответ

0
Лучший ответ

Вы можете сохранить двоичные данные в виде файла, а затем отправить его клиенту:

// place the above code here
    $saveTo = "c:\\temp.png";
    if (file_exists($saveTo)) {
        unlink($saveTo);
    }
    $fp = fopen($saveTo, 'wb');
    fwrite($fp, $resp);
    fclose($fp);

    header("Content-type:image/png");
    $fp = fopen($saveTo, 'rb');
    fpassthru($fp);
    exit();

или вы можете использовать echo:

echo $response;
  • 1
    msgstr "без сохранения его в файл". Зачем весь этот файл возиться, когда бы сделал простой echo $response ?
  • 1
    @Dariush Джафари плз, забери свой ответ. Я не могу найти слова ... Я хочу плакать, глядя на код выше.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню