PHP: Error al descargar archivo dinamico PDF desde Internet Explorer

Hace unas semanas hice una página que descarga un archivo XML y un PDF para unas facturas electronicas, todo bien hasta que se probo la descarga en Internet Explorer (para variar siempre problemas con este navegador)

El codigo que tenia era algo como esto:

<br /> header("Content-Type: application/pdf");<br /> header("Content-Disposition: attachment; filename="factura_A8.pdf");<br /> header("Expires: Fri, 16 Jun 1981 01:00:00 GMT");<br /> header("Last-Modified: . gmdate("D, d M Y H:i:s") . " GMT");<br /> header("Cache-Control: no-store, no-cache, must-revalidate");<br /> header("Pragma: no-cache");<br /> header("Cache-Control: post-chack=0, pre-check=0",false);<br /> 

La idea es generar un archivo PDF dinamico y despues bajarlo mediante una página especial, y lo del no-cache lo tenia para asi siempre tener la versión más nueva del servidor, pero como les comentaba en explorer me tiraba el siguiente error:

Internet Explorer no puede descargar …..

Internet Explorer no puede abrir este sitio Internet. El sitio solicitado no está disponible o no se encuentra. Intente de nuevo más tarde.

Y pues esta raro el mensaje ya que en Firefox, Opera, Safari si funciona la liga de la descarga, investigando más sobre este tema resulta que el error viene en la parte del no-cache así que tenemos que eliminar esas lineas y dejar el código como sigue:

<br /> header("Content-Type: application/pdf");<br /> header("Content-Disposition: attachment; filename="factura_A8.pdf");<br /> header("Expires: 0");<br /> header("Pragma: cache");<br /> header("Cache-Control: private");<br /> 

Y listo ya funciona la descarga del archivo PDF desde el Explorer :D

5 thoughts on “PHP: Error al descargar archivo dinamico PDF desde Internet Explorer

  1. Muchas gracias
    Tu pàgina me ha servido de gran ayuda para solucionar un problema de descarga de PDF des de Explorer. Tenia exactamente el mismo problema que tu.

    Estela Tonzan

  2. Hola kiero saber porque mi wamp aparentemente funciona, peor a la hora de correr mi aplicacion y jalar un archivo .php me aparece una ventanita donde me da la opcion de abrir, Guardar o Cancelar el archivo, como si lo fuese a descargar
    POrque sucede esto!!

    çSi alguien me puede decir por favor!!
    Mil Gracias

  3. Excelente la solución.
    Me ha dado unos buenos quebraderos de cabeza el dichoso error. Yo trabajo con servlets java y las cabeceras funcionan de lujo:

    response.setHeader(“Expires”,”0″);
    response.setHeader(“Pragma”,”cache”);
    response.setHeader(“Cache-Control”,”private”);

    El problema se puede dar con cualquier tipo de archivo, los del soporte de Microsoft hacen referencia a archivos de MSOffice, aquí habláis de un pdf y a mi me a pasado con un odt de OpenOffice.

    Un saludo y gracias por la solución

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *