josaric
josaric

Reputation: 397

PHP download gives me empty pdf

$file = "http://www.abax.se/content/download/137/862/file/example.pdf";
header('Content-Description: File Transfer');
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
flush();
readfile($file);

This is the code I'm running, I'm out of ideas, any solution?

Upvotes: 1

Views: 1808

Answers (1)

Damien Overeem
Damien Overeem

Reputation: 4529

Remove header('Content-Length: ' . filesize($file));.

Thats what's breaking your output.

filesize() expects a local file, not an url.

Working code:

<?php
$file = "http://www.abax.se/content/download/137/862/file/example.pdf";
header('Content-Description: File Transfer');
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename='.basename($file));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
flush();
readfile($file);
?>

Upvotes: 1

Related Questions