PHP, использующий Guzzle для пропуска PDF, не работает при отображении в браузере

(ИСПРАВЛЕНО: см. Комментарий ниже.)

У меня есть веб-сайт с PHP, который обращается к REST-сервису, работающему с .NET Core REST-API возвращает PDF за безопасность OAuth2.

Теперь я хочу, чтобы страница PHP проходила через PDF, который находится в памяти.

Я делаю что-нибудь как это:

$getPdfUrl = "https://<my url>";
$response = $guzzleClient->request("GET", $getPdfUrl, array("headers" => array("Authorization" => "Bearer <access token>")));

$lengthArray = $response->getHeader('Content-Length');
$length = $lengthArray[0];

header('Content-Type: application/pdf; charset=utf-8');
header('Content-Length: '.$length);
header("Content-Disposition: inline; filename='details.pdf'");

echo $response->getBody()->getContents();

Это прекрасно работает, если я использую Content-Dispositon в качестве вложения. С PDF все в порядке.

Тем не менее, я вижу бинарное дерьмо, как это https://i.stack.imgur.com/SQYQ4.png когда я делаю это в строке. Моя цель — отобразить PDF непосредственно браузером.

Я думаю, это небольшая ошибка, но я этого не вижу.

Обновление: благодаря комментариям ниже. Оба были правы. Я не согласен с моим (удаленным) комментарием и согласен. Из-за некоторой магии используемой CMS заголовок text / html уже был отправлен и вызвал эту ошибку.

Код выше верен.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]