желанный
У меня есть небольшая проблема с сохранением загруженного pdf на странице. Чтобы загрузить pdf, я использую Curl:
$CurlConnect = curl_init(); curl_setopt($CurlConnect, CURLOPT_URL, 'http://website.com/invoices/download/1'); curl_setopt($CurlConnect, CURLOPT_POST, 1); curl_setopt($CurlConnect, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt($CurlConnect, CURLOPT_POSTFIELDS, $request); curl_setopt($CurlConnect, CURLOPT_USERPWD, $login.':'.$password); $Result = curl_exec($CurlConnect);
Теперь в $ Result (string) у меня есть все содержимое файла PDF. И теперь начинается моя проблема. Я хотел бы сохранить загруженный pdf-файл:
header('Cache-Control: public'); header('Content-type: application/pdf'); header('Content-Disposition: attachment; filename="new.pdf"'); header('Content-Length: '.filesize($Result)); readfile($Result);
К сожалению, когда я сохраняю или открываю новый файл PDF, я получаю пустой документ. Возможно, проблема связана с последними строками:
header('Content-Length: '.filesize($Result)); readfile($Result);
К сожалению, я не знаю, как их изменить, чтобы заставить его работать … Я прошу вас о помощи. благодаря
$CurlConnect = curl_init(); curl_setopt($CurlConnect, CURLOPT_URL, 'http://website.com/invoices/download/1'); curl_setopt($CurlConnect, CURLOPT_POST, 1); curl_setopt($CurlConnect, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt($CurlConnect, CURLOPT_POSTFIELDS, $request); curl_setopt($CurlConnect, CURLOPT_USERPWD, $login.':'.$password); $Result = curl_exec($CurlConnect); header('Cache-Control: public'); header('Content-type: application/pdf'); header('Content-Disposition: attachment; filename="new.pdf"'); header('Content-Length: '.strlen($Result)); echo $Result;
Пожалуйста, попробуйте это.
filesize и readfile принимают файлы в качестве аргументов. Вы предоставляете строку вместо файла.
Возможно, что:
// ... $Result = curl_exec($CurlConnect); $file = 'file.pdf'; $fileName = 'fileName.pdf'; file_put_contents($file, $Result);
и тогда:
header('Content-type: application/pdf'); header('Content-Disposition: inline; filename="' . $filename . '"'); header('Content-Transfer-Encoding: binary'); header('Content-Length: ' . filesize($file)); header('Accept-Ranges: bytes'); readfile($file);
Надеюсь, я помог!