Foros del Web » Programando para Internet » PHP »

¿por que?

Estas en el tema de ¿por que? en el foro de PHP en Foros del Web. Saludos a todos los foristas, les cuento que quiero hacer descargas de archivos .pdf y al descargarlos Y TRATAR DE ABRIRLOS me muestra el siguiente ...
  #1 (permalink)  
Antiguo 22/01/2010, 14:42
 
Fecha de Ingreso: junio-2009
Mensajes: 93
Antigüedad: 14 años, 10 meses
Puntos: 0
¿por que?

Saludos a todos los foristas, les cuento que quiero hacer descargas de archivos .pdf y al descargarlos Y TRATAR DE ABRIRLOS me muestra el siguiente error

'Adobe Reader no pudo abrir 'archivo_01.pdf' debido a que no es un tipo de archivo admitido o esta dañado (por ejemplo, se envió como adjunto de correo electrónico y no se descodificó correctamente.'

El código que uso es el siguiente

<?php
$f = "Planilla_R-8.pdf";
header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=\"" . $f . "\"\n");
readfile($f);
?>

Y el enlace el siguiente..

<a href="bajando.php?id=Planilla_R-8.pdf">

Qué estoy haciendo mal?.
  #2 (permalink)  
Antiguo 22/01/2010, 17:42
Avatar de julianmejio  
Fecha de Ingreso: agosto-2005
Ubicación: Medellín, Antioquia
Mensajes: 88
Antigüedad: 18 años, 8 meses
Puntos: 3
Respuesta: ¿por que?

No tienes necesidad de colocar \n al final de la cadena que pasas como parámetro en el segundo llamado a la función header(). Prueba quitándolo.
Lo otro es comprobar que el archivo al que llamas realmente esté disponible desde la ruta que lo estás llamando, así que prueba primero testeando eso, y lo tercero es que puede imprimirse algo (como un error) antes de leer el documento PDF para descargar. Así que en el principio del código prueba colocando esto: error_reporting(0). Por último, revisa que no tengas errores en otras partes del código.
Otra cosa que puedes hacer es colocar Content-Type en vez de Content-type (las mayúsculas y minúsculas de las cabeceras pueden contribuir al error).

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:08.