{"id":6880,"date":"2017-09-14T07:54:18","date_gmt":"2017-09-14T07:54:18","guid":{"rendered":"https:\/\/www.jose-aguilar.com\/blog\/?p=6880"},"modified":"2017-09-14T07:56:14","modified_gmt":"2017-09-14T07:56:14","slug":"forzar-la-descarga-archivos-php","status":"publish","type":"post","link":"https:\/\/www.jose-aguilar.com\/blog\/forzar-la-descarga-archivos-php\/","title":{"rendered":"Como forzar la descarga de archivos con PHP"},"content":{"rendered":"<p>En algunos contextos quiz\u00e1 es necesario que el usuario descargue un archivo pdf, xls, csv, etc, para ver m\u00e1s informaci\u00f3n en otros formatos legibles en el ordenador o incluso con el objetivo de ser impresos. Los navegadores de hoy en d\u00eda muestran directamente algunos tipos de ficheros en el navegador antes de descargarlo y quiz\u00e1 puede ser molesto si lo que deseamos es descargarlo directamente nada m\u00e1s pulsar en el enlace o bot\u00f3n.<\/p>\n<p>En este art\u00edculo vamos a ver un ejemplo de como conseguir tal efecto. Explicaremos un ejemplo para descargar directamente un archivo en formato csv que deber\u00e1 estar previamente depositado en el servidor.<\/p>\n<p>All\u00ed donde deseemos dentro de la etiqueta &lt;body&gt; a\u00f1adiremos un enlace del estilo:<\/p>\n<div id=\"wpshdo_1\" class=\"wp-synhighlighter-outer\"><div id=\"wpshdt_1\" class=\"wp-synhighlighter-expanded\"><table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"80%\"><a name=\"#codesyntax_1\"><\/a><a id=\"wpshat_1\" class=\"wp-synhighlighter-title\" href=\"#codesyntax_1\"  onClick=\"javascript:wpsh_toggleBlock(1)\" title=\"Click to show\/hide code block\">Source code<\/a><\/td><td align=\"right\"><a href=\"#codesyntax_1\" onClick=\"javascript:wpsh_code(1)\" title=\"Show code only\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/code.png\" \/><\/a>&nbsp;<a href=\"#codesyntax_1\" onClick=\"javascript:wpsh_print(1)\" title=\"Print code\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/printer.png\" \/><\/a>&nbsp;<a href=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/About.html\" target=\"_blank\" title=\"Show plugin information\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/info.gif\" \/><\/a>&nbsp;<\/td><\/tr><\/table><\/div><div id=\"wpshdi_1\" class=\"wp-synhighlighter-inner\" style=\"display: block;\"><pre class=\"html4strict\" style=\"font-family:monospace;\"><span class=\"sc2\">&lt;<a href=\"http:\/\/december.com\/html\/4\/element\/a.html\"><span class=\"kw2\">a<\/span><\/a> <span class=\"kw3\">href<\/span><span class=\"sy0\">=<\/span><span class=\"st0\">&quot;index.php?download_csv=1&quot;<\/span>&gt;<\/span>Descargar archivo csv<span class=\"sc2\">&lt;<span class=\"sy0\">\/<\/span><a href=\"http:\/\/december.com\/html\/4\/element\/a.html\"><span class=\"kw2\">a<\/span><\/a>&gt;<\/span><\/pre><\/div><\/div>\n<p>&nbsp;<\/p>\n<p>Despu\u00e9s tan solo necesitaremos a\u00f1adir el c\u00f3digo PHP de control de la descarga en el mismo fichero o donde controlemos las acciones del usuario:<\/p>\n<div id=\"wpshdo_2\" class=\"wp-synhighlighter-outer\"><div id=\"wpshdt_2\" class=\"wp-synhighlighter-expanded\"><table border=\"0\" width=\"100%\"><tr><td align=\"left\" width=\"80%\"><a name=\"#codesyntax_2\"><\/a><a id=\"wpshat_2\" class=\"wp-synhighlighter-title\" href=\"#codesyntax_2\"  onClick=\"javascript:wpsh_toggleBlock(2)\" title=\"Click to show\/hide code block\">Source code<\/a><\/td><td align=\"right\"><a href=\"#codesyntax_2\" onClick=\"javascript:wpsh_code(2)\" title=\"Show code only\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/code.png\" \/><\/a>&nbsp;<a href=\"#codesyntax_2\" onClick=\"javascript:wpsh_print(2)\" title=\"Print code\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/printer.png\" \/><\/a>&nbsp;<a href=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/About.html\" target=\"_blank\" title=\"Show plugin information\"><img decoding=\"async\" border=\"0\" style=\"border: 0 none\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/plugins\/wp-synhighlight\/themes\/default\/images\/info.gif\" \/><\/a>&nbsp;<\/td><\/tr><\/table><\/div><div id=\"wpshdi_2\" class=\"wp-synhighlighter-inner\" style=\"display: block;\"><pre class=\"php\" style=\"font-family:monospace;\"><span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><a href=\"http:\/\/www.php.net\/isset\"><span class=\"kw3\">isset<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$_GET<\/span><span class=\"br0\">[<\/span><span class=\"st_h\">'download_csv'<\/span><span class=\"br0\">]<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n    <span class=\"re0\">$file_example<\/span> <span class=\"sy0\">=<\/span> <span class=\"st_h\">'example.csv'<\/span><span class=\"sy0\">;<\/span>\n    <span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><a href=\"http:\/\/www.php.net\/file_exists\"><span class=\"kw3\">file_exists<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$file_example<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span>\n        <a href=\"http:\/\/www.php.net\/header\"><span class=\"kw3\">header<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'Content-Description: File Transfer'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n        <a href=\"http:\/\/www.php.net\/header\"><span class=\"kw3\">header<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'Content-Type: text\/csv'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n        <a href=\"http:\/\/www.php.net\/header\"><span class=\"kw3\">header<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'Content-Disposition: attachment; filename='<\/span><span class=\"sy0\">.<\/span><a href=\"http:\/\/www.php.net\/basename\"><span class=\"kw3\">basename<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$file_example<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n        <a href=\"http:\/\/www.php.net\/header\"><span class=\"kw3\">header<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'Content-Transfer-Encoding: binary'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n        <a href=\"http:\/\/www.php.net\/header\"><span class=\"kw3\">header<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'Expires: 0'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n        <a href=\"http:\/\/www.php.net\/header\"><span class=\"kw3\">header<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'Cache-Control: must-revalidate'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n        <a href=\"http:\/\/www.php.net\/header\"><span class=\"kw3\">header<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'Pragma: public'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n        <a href=\"http:\/\/www.php.net\/header\"><span class=\"kw3\">header<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'Content-Length: '<\/span> <span class=\"sy0\">.<\/span> <a href=\"http:\/\/www.php.net\/filesize\"><span class=\"kw3\">filesize<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$file_example<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n        <a href=\"http:\/\/www.php.net\/ob_clean\"><span class=\"kw3\">ob_clean<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n        <a href=\"http:\/\/www.php.net\/flush\"><span class=\"kw3\">flush<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n        <a href=\"http:\/\/www.php.net\/readfile\"><span class=\"kw3\">readfile<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$file_example<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span>\n        <a href=\"http:\/\/www.php.net\/exit\"><span class=\"kw3\">exit<\/span><\/a><span class=\"sy0\">;<\/span>\n    <span class=\"br0\">&#125;<\/span>\n    <span class=\"kw1\">else<\/span> <span class=\"br0\">&#123;<\/span>\n        <span class=\"kw1\">echo<\/span> <span class=\"st_h\">'Archivo no disponible.'<\/span><span class=\"sy0\">;<\/span>\n    <span class=\"br0\">&#125;<\/span>\n<span class=\"br0\">&#125;<\/span><\/pre><\/div><\/div>\n<p>&nbsp;<\/p>\n<p>Lo primero que hacemos es comprobar que se haya pulsado en el enlace que contenga el par\u00e1metro de tipo GET \u00abdownload_csv\u00bb con el simple objetivo de gestionar la descarga. Especificamos la ruta del fichero depositado en el servidor en la misma raiz del fichero que se ejecuta y comprobamos si existe para descargarlo.<\/p>\n<p>A continuaci\u00f3n especificamos informaci\u00f3n sobre el fichero para informar al navegador.<\/p>\n<p>La funci\u00f3n header() es imprescindible. Con ella conseguimos especificar e informar al navegador algunos datos relevantes para la descarga.<\/p>\n<p>En este caso estamos indicando que:<\/p>\n<ul>\n<li>deseamos hacer una transferencia de archivo<\/li>\n<li>el tipo de archivo a procesar sea csv<\/li>\n<li>se trata de un archivo adjunto<\/li>\n<li>el tipo de codificaci\u00f3n utilizada<\/li>\n<\/ul>\n<p>Al final del script enviamos las cabeceras, limpiamos el buffer y abrimos el archivo que mostrar\u00e1 la ventana de descarga:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-6881\" src=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2017\/09\/example.png\" alt=\"\" width=\"453\" height=\"339\" srcset=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2017\/09\/example.png 453w, https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2017\/09\/example-300x225.png 300w\" sizes=\"auto, (max-width: 453px) 100vw, 453px\" \/><\/p>\n<p><a href=\"https:\/\/www.jose-aguilar.com\/scripts\/php\/forzar-descarga\/\" target=\"_blank\" rel=\"noopener\">Ver ejemplo en funcionamiento<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>En algunos contextos quiz\u00e1 es necesario que el usuario descargue un archivo pdf, xls, csv, etc, para ver m\u00e1s informaci\u00f3n en otros formatos legibles en el ordenador o incluso con el objetivo de ser impresos. Los navegadores de hoy en d\u00eda muestran directamente algunos tipos de ficheros en el navegador antes de descargarlo y quiz\u00e1 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":6881,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[103],"class_list":["post-6880","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php","tag-archivos"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Como forzar la descarga de archivos con PHP - Jose Aguilar Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Como forzar la descarga de archivos con PHP - Jose Aguilar Blog\" \/>\n<meta property=\"og:description\" content=\"En algunos contextos quiz\u00e1 es necesario que el usuario descargue un archivo pdf, xls, csv, etc, para ver m\u00e1s informaci\u00f3n en otros formatos legibles en el ordenador o incluso con el objetivo de ser impresos. Los navegadores de hoy en d\u00eda muestran directamente algunos tipos de ficheros en el navegador antes de descargarlo y quiz\u00e1 [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.jose-aguilar.com\/blog\/forzar-la-descarga-archivos-php\/\" \/>\n<meta property=\"og:site_name\" content=\"Jose Aguilar Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/joseaguilarblog\" \/>\n<meta property=\"article:published_time\" content=\"2017-09-14T07:54:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2017-09-14T07:56:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2017\/09\/example.png\" \/>\n\t<meta property=\"og:image:width\" content=\"453\" \/>\n\t<meta property=\"og:image:height\" content=\"339\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jose Aguilar\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@JoseAguilarBlog\" \/>\n<meta name=\"twitter:site\" content=\"@JoseAguilarBlog\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jose Aguilar\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/forzar-la-descarga-archivos-php\/\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/forzar-la-descarga-archivos-php\/\",\"name\":\"Como forzar la descarga de archivos con PHP - Jose Aguilar Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/forzar-la-descarga-archivos-php\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/forzar-la-descarga-archivos-php\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2017\/09\/example.png\",\"datePublished\":\"2017-09-14T07:54:18+00:00\",\"dateModified\":\"2017-09-14T07:56:14+00:00\",\"author\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/forzar-la-descarga-archivos-php\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.jose-aguilar.com\/blog\/forzar-la-descarga-archivos-php\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/forzar-la-descarga-archivos-php\/#primaryimage\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2017\/09\/example.png\",\"contentUrl\":\"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2017\/09\/example.png\",\"width\":453,\"height\":339},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/forzar-la-descarga-archivos-php\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/www.jose-aguilar.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Como forzar la descarga de archivos con PHP\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#website\",\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/\",\"name\":\"Jose Aguilar Blog\",\"description\":\"Desarrollo Web con PrestaShop, WordPress, PHP, jQuery y Ajax\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.jose-aguilar.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11\",\"name\":\"Jose Aguilar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g\",\"caption\":\"Jose Aguilar\"},\"description\":\"Director ejecutivo y tecnol\u00f3gico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.\",\"sameAs\":[\"https:\/\/plus.google.com\/114357189801512615537\"],\"url\":\"https:\/\/www.jose-aguilar.com\/blog\/author\/josea902\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Como forzar la descarga de archivos con PHP - Jose Aguilar Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"es_ES","og_type":"article","og_title":"Como forzar la descarga de archivos con PHP - Jose Aguilar Blog","og_description":"En algunos contextos quiz\u00e1 es necesario que el usuario descargue un archivo pdf, xls, csv, etc, para ver m\u00e1s informaci\u00f3n en otros formatos legibles en el ordenador o incluso con el objetivo de ser impresos. Los navegadores de hoy en d\u00eda muestran directamente algunos tipos de ficheros en el navegador antes de descargarlo y quiz\u00e1 [&hellip;]","og_url":"https:\/\/www.jose-aguilar.com\/blog\/forzar-la-descarga-archivos-php\/","og_site_name":"Jose Aguilar Blog","article_publisher":"https:\/\/www.facebook.com\/joseaguilarblog","article_published_time":"2017-09-14T07:54:18+00:00","article_modified_time":"2017-09-14T07:56:14+00:00","og_image":[{"width":453,"height":339,"url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2017\/09\/example.png","type":"image\/png"}],"author":"Jose Aguilar","twitter_card":"summary_large_image","twitter_creator":"@JoseAguilarBlog","twitter_site":"@JoseAguilarBlog","twitter_misc":{"Escrito por":"Jose Aguilar","Tiempo de lectura":"2 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.jose-aguilar.com\/blog\/forzar-la-descarga-archivos-php\/","url":"https:\/\/www.jose-aguilar.com\/blog\/forzar-la-descarga-archivos-php\/","name":"Como forzar la descarga de archivos con PHP - Jose Aguilar Blog","isPartOf":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/forzar-la-descarga-archivos-php\/#primaryimage"},"image":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/forzar-la-descarga-archivos-php\/#primaryimage"},"thumbnailUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2017\/09\/example.png","datePublished":"2017-09-14T07:54:18+00:00","dateModified":"2017-09-14T07:56:14+00:00","author":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11"},"breadcrumb":{"@id":"https:\/\/www.jose-aguilar.com\/blog\/forzar-la-descarga-archivos-php\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.jose-aguilar.com\/blog\/forzar-la-descarga-archivos-php\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/forzar-la-descarga-archivos-php\/#primaryimage","url":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2017\/09\/example.png","contentUrl":"https:\/\/www.jose-aguilar.com\/blog\/wp-content\/uploads\/2017\/09\/example.png","width":453,"height":339},{"@type":"BreadcrumbList","@id":"https:\/\/www.jose-aguilar.com\/blog\/forzar-la-descarga-archivos-php\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.jose-aguilar.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Como forzar la descarga de archivos con PHP"}]},{"@type":"WebSite","@id":"https:\/\/www.jose-aguilar.com\/blog\/#website","url":"https:\/\/www.jose-aguilar.com\/blog\/","name":"Jose Aguilar Blog","description":"Desarrollo Web con PrestaShop, WordPress, PHP, jQuery y Ajax","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.jose-aguilar.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/e6d485db1e1140866e95971d17105d11","name":"Jose Aguilar","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.jose-aguilar.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/abbfef5f1d75260c549d0f2c2842bb697ba1aadff3b2836b39d2590c8a625415?s=96&d=mm&r=g","caption":"Jose Aguilar"},"description":"Director ejecutivo y tecnol\u00f3gico en JA Modules. Experto programador PrestaShop y Experto programador WordPress.","sameAs":["https:\/\/plus.google.com\/114357189801512615537"],"url":"https:\/\/www.jose-aguilar.com\/blog\/author\/josea902\/"}]}},"_links":{"self":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/6880","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/comments?post=6880"}],"version-history":[{"count":0,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/posts\/6880\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media\/6881"}],"wp:attachment":[{"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/media?parent=6880"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/categories?post=6880"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jose-aguilar.com\/blog\/wp-json\/wp\/v2\/tags?post=6880"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}