Foros del Web » Programando para Internet » PHP »

Problema con header

Estas en el tema de Problema con header en el foro de PHP en Foros del Web. Hola, Intento insertar un script que obliga la descarga del archivo además de ocultar el path del archivo. El caso es que como continuamente me ...
  #1 (permalink)  
Antiguo 31/07/2008, 12:30
NiB
 
Fecha de Ingreso: octubre-2005
Mensajes: 59
Antigüedad: 18 años, 6 meses
Puntos: 0
Problema con header

Hola,

Intento insertar un script que obliga la descarga del archivo además de ocultar el path del archivo.
El caso es que como continuamente me daba error "headers already sent by (output started..." y tras comprobar que no generaba ninguna salida antes del código he decidido probar a eliminar todo pero aun así me genera ese error.
os pongo los codigos:







prueba.html
Código PHP:
<a href="path/archivo.php?id=nombreDeArchivo.txt">nombreDeArchivo</a
archivo.php
Código PHP:
<?
$carpeta
="/files/";
if (
file_exists($carpeta.basename($_GET['file'])))
{
$file=$carpeta.$_GET["file"];
   
header("Content-Transfer-Encoding: binary");
   
header("Content-type: application/force-download");
   
header("Content-Disposition: attachment; filename=".basename($file));
   
header("Content-Length: ".filesize($file)); 
   
readfile($file);
}
else
{
echo 
"El archivo solicitado no existe.";
}
?>
A ver si podeis decirme donde meto la pata.
gracias de antemano

Última edición por NiB; 31/07/2008 a las 13:39 Razón: la publicidad ocultaba parte del codigo
  #2 (permalink)  
Antiguo 31/07/2008, 12:47
Avatar de mapper  
Fecha de Ingreso: enero-2003
Ubicación: Argentina
Mensajes: 321
Antigüedad: 21 años, 3 meses
Puntos: 1
Respuesta: Problema con header

Intenta con esto:

Código PHP:
<? 
ob_start
(); 

$carpeta="/files/";
if (
file_exists($carpeta.basename($_GET['file'])))
{
$file=$carpeta.$_GET["file"];
   
header("Content-Transfer-Encoding: binary");
   
header("Content-type: application/force-download");
   
header("Content-Disposition: attachment; filename=".basename($file));
   
header("Content-Length: ".filesize($file)); 
   
readfile($file);
}
else
{
echo 
"El archivo solicitado no existe.";
}

ob_end_flush(); 
?>
Recuerdo mas de 20 posts referentes al mismo problema en el foro. Intenta usar el buscador anotando el error
__________________
-- May The Force Be With You --
  #3 (permalink)  
Antiguo 31/07/2008, 13:57
NiB
 
Fecha de Ingreso: octubre-2005
Mensajes: 59
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: Problema con header

gracias por responder,

No mencioné que ya había probado ob_start(); y con el mismo resultado, de todas maneras, aunque funcionase me gustaría saber porque me da ese error.

Créeme, siempre busco y hago pruebas antes de preguntar.
  #4 (permalink)  
Antiguo 31/07/2008, 14:12
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con header

Hola NiB,

Checa este link: http://www.forosdelweb.com/2023067-post176.html

Saludos.
  #5 (permalink)  
Antiguo 31/07/2008, 15:02
NiB
 
Fecha de Ingreso: octubre-2005
Mensajes: 59
Antigüedad: 18 años, 6 meses
Puntos: 0
Respuesta: Problema con header

Realmente alucinante jamás se me hubiese pasado por la cabeza que tuviese relación la codificación de caracteres.

mil gracias de nuevo GatorV
  #6 (permalink)  
Antiguo 31/07/2008, 15:28
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Problema con header

Pues yo quisiera comentar algo respecto a esto, yo edito los ficheros y los guardo con codificacion utf-8 y nunca he tenido ese problema con las cabeceras, puede depender tambien por la configuracion del servidor? o que esos tres caracteres no los pongan todos los editores de texto?

un saludo :)
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 01:32.