jpaires
jpaires

Reputation: 355

PDF rendered as text

I'm using PHP to generate a PDF via browser for my web-application. Recently, the client changed the webserver to Apache and now this feature is no longer working. Instead of generating the PDF, the browser is showing the PDF as text, just as it was ignoring Content-Type (that is set to "application/pdf"). In fact, I successfully simulated the problem by commenting the line setting the Content-Type in the source code.

I need ideas about where and what to look for, any help will be very welcome :)

Upvotes: 0

Views: 134

Answers (2)

rationalboss
rationalboss

Reputation: 5389

Since you generate PDF files through PHP, you can try to add these headers:

$file_default = 'default filename you want to appear when the user downloads.pdf';
$file_location = '/path/to/file.pdf';
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.$file_default);
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($file_location));
ob_clean();
flush();
readfile($file_location);

Upvotes: 2

Taher
Taher

Reputation: 12050

I guess you'd have to force apache to download PDF content rather than showing:

check this: http://www.thingy-ma-jig.co.uk/blog/06-08-2007/force-a-pdf-to-download

Upvotes: 0

Related Questions