{"id":694,"date":"2009-06-30T13:15:41","date_gmt":"2009-06-30T03:15:41","guid":{"rendered":"https:\/\/eisabainyo.net\/weblog\/?p=694"},"modified":"2009-06-30T13:20:18","modified_gmt":"2009-06-30T03:20:18","slug":"display-a-download-dialog-for-pdf-in-php","status":"publish","type":"post","link":"https:\/\/eisabainyo.net\/weblog\/2009\/06\/30\/display-a-download-dialog-for-pdf-in-php\/","title":{"rendered":"Display a download dialog for pdf in PHP"},"content":{"rendered":"<p>In order to display a download dialog for pdf file rather than opening it in the browser, we can put the following snippet of code in a php file and name the file download.php.<\/p>\n<p>The path to the pdf file is specified in $filename variable.  You can also pass filename as a parameter in the URL but you will need to check for Cross Site Scripting (XSS) and various script injection attempts if you decide to get the filename from the URL paramater.  <\/p>\n<pre>\r\n  $filename = '\/path\/to\/your\/file\/download.pdf';\r\n  header(&quot;Pragma: public&quot;);\r\n  header(&quot;Expires: 0&quot;); \r\n  header(&quot;Pragma: no-cache&quot;); \r\n  header(&quot;Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0&quot;);  \r\n  header(&quot;Content-Type: application\/force-download&quot;); \r\n  header(&quot;Content-Type: application\/octet-stream&quot;);\r\n  header(&quot;Content-Type: application\/download&quot;);\r\n  header('Content-disposition: attachment; filename=' . basename($filename));\r\n  header(&quot;Content-Type: application\/pdf&quot;);\r\n  header(&quot;Content-Transfer-Encoding: binary&quot;);\r\n  header('Content-Length: ' . filesize($filename));\r\n  @readfile($filename);\r\n  exit(0);\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>In order to display a download dialog for pdf file rather than opening it in<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,8],"tags":[],"class_list":["post-694","post","type-post","status-publish","format-standard","hentry","category-php","category-snippets"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Display a download dialog for pdf in PHP | Tech Leadership Advice &amp; Resources<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/eisabainyo.net\/weblog\/2009\/06\/30\/display-a-download-dialog-for-pdf-in-php\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Display a download dialog for pdf in PHP | Tech Leadership Advice &amp; Resources\" \/>\n<meta property=\"og:description\" content=\"In order to display a download dialog for pdf file rather than opening it in\" \/>\n<meta property=\"og:url\" content=\"https:\/\/eisabainyo.net\/weblog\/2009\/06\/30\/display-a-download-dialog-for-pdf-in-php\/\" \/>\n<meta property=\"og:site_name\" content=\"Tech Leadership Advice &amp; Resources\" \/>\n<meta property=\"article:published_time\" content=\"2009-06-30T03:15:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2009-06-30T03:20:18+00:00\" \/>\n<meta name=\"author\" content=\"Isabel Nyo\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Isabel Nyo\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/eisabainyo.net\/weblog\/2009\/06\/30\/display-a-download-dialog-for-pdf-in-php\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/eisabainyo.net\/weblog\/2009\/06\/30\/display-a-download-dialog-for-pdf-in-php\/\"},\"author\":{\"name\":\"Isabel Nyo\",\"@id\":\"https:\/\/eisabainyo.net\/weblog\/#\/schema\/person\/33457dd19f1ad9bbd4b0cb50c54dfcab\"},\"headline\":\"Display a download dialog for pdf in PHP\",\"datePublished\":\"2009-06-30T03:15:41+00:00\",\"dateModified\":\"2009-06-30T03:20:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/eisabainyo.net\/weblog\/2009\/06\/30\/display-a-download-dialog-for-pdf-in-php\/\"},\"wordCount\":92,\"commentCount\":6,\"publisher\":{\"@id\":\"https:\/\/eisabainyo.net\/weblog\/#\/schema\/person\/33457dd19f1ad9bbd4b0cb50c54dfcab\"},\"articleSection\":[\"PHP\",\"Snippets\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/eisabainyo.net\/weblog\/2009\/06\/30\/display-a-download-dialog-for-pdf-in-php\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/eisabainyo.net\/weblog\/2009\/06\/30\/display-a-download-dialog-for-pdf-in-php\/\",\"url\":\"https:\/\/eisabainyo.net\/weblog\/2009\/06\/30\/display-a-download-dialog-for-pdf-in-php\/\",\"name\":\"Display a download dialog for pdf in PHP | Tech Leadership Advice &amp; Resources\",\"isPartOf\":{\"@id\":\"https:\/\/eisabainyo.net\/weblog\/#website\"},\"datePublished\":\"2009-06-30T03:15:41+00:00\",\"dateModified\":\"2009-06-30T03:20:18+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/eisabainyo.net\/weblog\/2009\/06\/30\/display-a-download-dialog-for-pdf-in-php\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/eisabainyo.net\/weblog\/2009\/06\/30\/display-a-download-dialog-for-pdf-in-php\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/eisabainyo.net\/weblog\/2009\/06\/30\/display-a-download-dialog-for-pdf-in-php\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/eisabainyo.net\/weblog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Display a download dialog for pdf in PHP\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/eisabainyo.net\/weblog\/#website\",\"url\":\"https:\/\/eisabainyo.net\/weblog\/\",\"name\":\"Career Resources for Professionals in Tech\",\"description\":\"Books, worksheets, templates, frameworks and other useful resources for Chief Technology Officers (CTOs), VPs of Engineering &amp; Technology Directors\",\"publisher\":{\"@id\":\"https:\/\/eisabainyo.net\/weblog\/#\/schema\/person\/33457dd19f1ad9bbd4b0cb50c54dfcab\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/eisabainyo.net\/weblog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/eisabainyo.net\/weblog\/#\/schema\/person\/33457dd19f1ad9bbd4b0cb50c54dfcab\",\"name\":\"Isabel Nyo\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/eisabainyo.net\/weblog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/3d4b1a4e0f425adb39b242b0d62c5fac07c82f8314a24631f1d16f47bdf006d8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/3d4b1a4e0f425adb39b242b0d62c5fac07c82f8314a24631f1d16f47bdf006d8?s=96&d=mm&r=g\",\"caption\":\"Isabel Nyo\"},\"logo\":{\"@id\":\"https:\/\/eisabainyo.net\/weblog\/#\/schema\/person\/image\/\"},\"description\":\"My interests: Web Development, Web Design, Web Applications, Web 2.0, AJAX, Search Engine Optimisation, Latest Technologies and more..\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Display a download dialog for pdf in PHP | Tech Leadership Advice &amp; Resources","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/eisabainyo.net\/weblog\/2009\/06\/30\/display-a-download-dialog-for-pdf-in-php\/","og_locale":"en_US","og_type":"article","og_title":"Display a download dialog for pdf in PHP | Tech Leadership Advice &amp; Resources","og_description":"In order to display a download dialog for pdf file rather than opening it in","og_url":"https:\/\/eisabainyo.net\/weblog\/2009\/06\/30\/display-a-download-dialog-for-pdf-in-php\/","og_site_name":"Tech Leadership Advice &amp; Resources","article_published_time":"2009-06-30T03:15:41+00:00","article_modified_time":"2009-06-30T03:20:18+00:00","author":"Isabel Nyo","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Isabel Nyo","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/eisabainyo.net\/weblog\/2009\/06\/30\/display-a-download-dialog-for-pdf-in-php\/#article","isPartOf":{"@id":"https:\/\/eisabainyo.net\/weblog\/2009\/06\/30\/display-a-download-dialog-for-pdf-in-php\/"},"author":{"name":"Isabel Nyo","@id":"https:\/\/eisabainyo.net\/weblog\/#\/schema\/person\/33457dd19f1ad9bbd4b0cb50c54dfcab"},"headline":"Display a download dialog for pdf in PHP","datePublished":"2009-06-30T03:15:41+00:00","dateModified":"2009-06-30T03:20:18+00:00","mainEntityOfPage":{"@id":"https:\/\/eisabainyo.net\/weblog\/2009\/06\/30\/display-a-download-dialog-for-pdf-in-php\/"},"wordCount":92,"commentCount":6,"publisher":{"@id":"https:\/\/eisabainyo.net\/weblog\/#\/schema\/person\/33457dd19f1ad9bbd4b0cb50c54dfcab"},"articleSection":["PHP","Snippets"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/eisabainyo.net\/weblog\/2009\/06\/30\/display-a-download-dialog-for-pdf-in-php\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/eisabainyo.net\/weblog\/2009\/06\/30\/display-a-download-dialog-for-pdf-in-php\/","url":"https:\/\/eisabainyo.net\/weblog\/2009\/06\/30\/display-a-download-dialog-for-pdf-in-php\/","name":"Display a download dialog for pdf in PHP | Tech Leadership Advice &amp; Resources","isPartOf":{"@id":"https:\/\/eisabainyo.net\/weblog\/#website"},"datePublished":"2009-06-30T03:15:41+00:00","dateModified":"2009-06-30T03:20:18+00:00","breadcrumb":{"@id":"https:\/\/eisabainyo.net\/weblog\/2009\/06\/30\/display-a-download-dialog-for-pdf-in-php\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/eisabainyo.net\/weblog\/2009\/06\/30\/display-a-download-dialog-for-pdf-in-php\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/eisabainyo.net\/weblog\/2009\/06\/30\/display-a-download-dialog-for-pdf-in-php\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/eisabainyo.net\/weblog\/"},{"@type":"ListItem","position":2,"name":"Display a download dialog for pdf in PHP"}]},{"@type":"WebSite","@id":"https:\/\/eisabainyo.net\/weblog\/#website","url":"https:\/\/eisabainyo.net\/weblog\/","name":"Career Resources for Professionals in Tech","description":"Books, worksheets, templates, frameworks and other useful resources for Chief Technology Officers (CTOs), VPs of Engineering &amp; Technology Directors","publisher":{"@id":"https:\/\/eisabainyo.net\/weblog\/#\/schema\/person\/33457dd19f1ad9bbd4b0cb50c54dfcab"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/eisabainyo.net\/weblog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/eisabainyo.net\/weblog\/#\/schema\/person\/33457dd19f1ad9bbd4b0cb50c54dfcab","name":"Isabel Nyo","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/eisabainyo.net\/weblog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/3d4b1a4e0f425adb39b242b0d62c5fac07c82f8314a24631f1d16f47bdf006d8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/3d4b1a4e0f425adb39b242b0d62c5fac07c82f8314a24631f1d16f47bdf006d8?s=96&d=mm&r=g","caption":"Isabel Nyo"},"logo":{"@id":"https:\/\/eisabainyo.net\/weblog\/#\/schema\/person\/image\/"},"description":"My interests: Web Development, Web Design, Web Applications, Web 2.0, AJAX, Search Engine Optimisation, Latest Technologies and more.."}]}},"_links":{"self":[{"href":"https:\/\/eisabainyo.net\/weblog\/wp-json\/wp\/v2\/posts\/694","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eisabainyo.net\/weblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eisabainyo.net\/weblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eisabainyo.net\/weblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/eisabainyo.net\/weblog\/wp-json\/wp\/v2\/comments?post=694"}],"version-history":[{"count":2,"href":"https:\/\/eisabainyo.net\/weblog\/wp-json\/wp\/v2\/posts\/694\/revisions"}],"predecessor-version":[{"id":696,"href":"https:\/\/eisabainyo.net\/weblog\/wp-json\/wp\/v2\/posts\/694\/revisions\/696"}],"wp:attachment":[{"href":"https:\/\/eisabainyo.net\/weblog\/wp-json\/wp\/v2\/media?parent=694"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eisabainyo.net\/weblog\/wp-json\/wp\/v2\/categories?post=694"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eisabainyo.net\/weblog\/wp-json\/wp\/v2\/tags?post=694"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}