Скачал pdf файл с помощью curl - проблема - PullRequest
1 голос
/ 28 мая 2020

Это мой код curl:

$fp = fopen('path/to/file/'. $id . '.pdf', 'w+');

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, 'myurl');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, '');
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_COOKIEJAR, '');
curl_setopt($curl, CURLOPT_AUTOREFERER, true);
curl_setopt($curl, CURLOPT_FILE, $fp);
curl_setopt($curl, CURLOPT_TIMEOUT, 20);

curl_exec($curl);

Мне удалось скачать свой файл. Я могу открыть его, но не в Chrome. Кроме того, если я пытаюсь открыть его с помощью $pdf = new Zend_Pdf(file_get_contents($pdfFile));, я получаю следующую ошибку: File is not a PDF

Я считаю, что я сохраняю под определенным именем c и помещаю его в специфику c папка, неверна. В любом случае, есть идеи, как к этому подойти?

Спасибо

1 Ответ

0 голосов
/ 28 мая 2020

Когда вы пытаетесь получить «структурированные» файлы, такие как PDF, вы не хотите, чтобы возвращались и заголовки, поскольку они обычно повреждают получаемый файл. Замените

curl_setopt($curl, CURLOPT_HEADER, 1);

на

curl_setopt($curl, CURLOPT_HEADER, 0);
...