Solved

open pdf within browser via php code

Posted on 2013-06-25
9
2,235 Views
Last Modified: 2013-06-25
Using PHP code I have created a pdf document and stored it as a file on our server.

I can open the pdf file within the browser if I access it via it's url
I can email it as an attachment and successfully open

However
I can't open the pdf in the browser window via a php call.

I get the following error "File doesn't begin with '%PDF-'

I have tried the following options   ($file is a variable)

option 1      
        header('Content-Disposition: inline; filename="'.$file.'"');
      header('Content-Type: application/pdf');
      header('Content-Length: '.filesize($file));
      readfile($file);

option 2
       header("Content-type: application/pdf");
       header("Content-Disposition: inline; filename=".$file);
       readfile($file);

option 3
       header("Content-Type: application/pdf");
       header("Cache-Control: no-cache");
       header("Accept-Ranges: none");
       header("Content-Disposition: attachment; filename=\"".$file."\"");

I have also attempted to use absolute references rather than the variable '$file' but I haven't been successful

thanks
0
Comment
Question by:joomla
  • 4
  • 4
9 Comments
 
LVL 58

Expert Comment

by:Gary
ID: 39276491
Tested your first option and it works as it should.
Check you are not using an old version of pdf reader.
Assuming you have nothing else in the php page...?
0
 

Author Comment

by:joomla
ID: 39276509
Is there a way to make it version irrelevant ?
0
 
LVL 34

Expert Comment

by:gr8gonzo
ID: 39276515
I'm guessing that it's probably a missing file / path issue. To confirm that, add this before the first header() in option 1:

if(!file_exists($file))
{
  echo "{$file} does not exist!";
  die();
}
0
 
LVL 58

Expert Comment

by:Gary
ID: 39276520
What browser are you using? What version of PDF reader?
Assuming gr8gonzo is wrong and you do have the correct file path....
0
Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

 

Author Comment

by:joomla
ID: 39276535
Hi
thanks gr8gonzo, but the path is correct, however I appreciate the feedback.

application:  DOMPDF
version:   PDF 1.3   (acrobat 4.x)

I should point out, it opens if sent as an attachment and or if I click on the link

regards
0
 
LVL 58

Expert Comment

by:Gary
ID: 39276558
1.3 - are you sure?
That's 13 years old, and probably the reason. Earlier version of PDF reader had problems with IE's ActiveX
0
 

Author Comment

by:joomla
ID: 39276633
sorry for the slow response
using adobe acrobat professional seems to give the same result

I tried downloading/installing latest version of reader but Kasparskey locked my machine and I had to restart

Can anyone recommend a better anti-virus as I'm running out of tolerance for K.

Can you confirm that the following code block works for you ?

      header('Content-Disposition: inline; filename="'.$file.'"');
      header('Content-Type: application/pdf');
      header('Content-Length: '.filesize($file));
      readfile($file);
0
 
LVL 58

Accepted Solution

by:
Gary earned 250 total points
ID: 39276645
Microsoft Security Essentials - been using it over a year and never an infection and its free (I know what you mean about Kaspersky - and McAfee)
Also AVG - has a free version.
Depends how much you want to spend or not spend.

Yep that code works fine - but I'm on PDF 10
0
 

Author Closing Comment

by:joomla
ID: 39276648
thanks for your help
0

Featured Post

Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

Join & Write a Comment

Suggested Solutions

Foreword (July, 2015) Since I first wrote this article, years ago, a great many more people have begun using the internet.  They are coming online from every part of the globe, learning, reading, shopping and spending money at an ever-increasing ra…
Since pre-biblical times, humans have sought ways to keep secrets, and share the secrets selectively.  This article explores the ways PHP can be used to hide and encrypt information.
Learn the basics of lists in Python. Lists, as their name suggests, are a means for ordering and storing values. : Lists are declared using brackets; for example: t = [1, 2, 3]: Lists may contain a mix of data types; for example: t = ['string', 1, T…
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.

708 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now