Foros del Web » Programando para Internet » PHP »

Problemas con header()

Estas en el tema de Problemas con header() en el foro de PHP en Foros del Web. Hola, he estado intentando bajar un archivo del servidor pero cuando lo bajo obtengo un archivo en blanco. He utilizado el siguiente código: He usado ...
  #1 (permalink)  
Antiguo 28/02/2007, 11:34
 
Fecha de Ingreso: julio-2005
Mensajes: 24
Antigüedad: 18 años, 9 meses
Puntos: 0
Problemas con header()

Hola, he estado intentando bajar un archivo del servidor pero cuando lo bajo obtengo un archivo en blanco. He utilizado el siguiente código:

He usado solo una linea de header
header('Content-Disposition: attachment; filename="../archivos/'.$nombre.'"');

O todo esto:
$nombre_fichero=basename("../archivos/".$nombre);

if (strstr($_SERVER['HTTP_USER_AGENT'], 'compatible; MSIE ') !== false &&
strstr($_SERVER['HTTP_USER_AGENT'], 'Opera') === false) {
// IE doesn't properly download attachments. This should work
// pretty well for IE 5.5 SP 1
header("Content-Disposition: inline; filename=\"$nombre_fichero\"");
header("Content-Type: application/octetstream; name=\"$nombre_fichero\"");
header("Content-length:".(string)(filesize("$fichero")));
} else {
// Use standard headers for Netscape, Opera, etc.
header("Content-Disposition: attachment; filename=\"$nombre_fichero\"");
header("Content-Type: application/octetstream; name=\"$nombre_fichero\"");
header("Content-length: ".(string)(filesize("$fichero")));

}
readfile("$fichero");

O esto:

$arch = "../archivos/".$nombre;
$arch = "orden_d_trabajo.php";
header( "Content-Type: application/octet-stream");
header( "Content-Disposition: attachment; filename=".$arch."");
$handle = fopen ($arch, "r");
echo fread ($handle, filesize ($arch));
fclose ($arch);


En ninguno de los casos obtengo el archivo correcto, de hecho, el nombre que aparece en la caja de diálogo cuando voy a elegir Abrir o Descargar es el nombre de mi archivo php, no el nombre del archivo que quiero bajar.

Gracias por la ayuda
  #2 (permalink)  
Antiguo 28/02/2007, 11:36
Avatar de carlosmbrizuela  
Fecha de Ingreso: enero-2007
Ubicación: La Plata (Argentina)
Mensajes: 490
Antigüedad: 17 años, 3 meses
Puntos: 1
Re: Problemas con header()

echo "<a href='ruta de donde quieres sacar el archivo'>nombrearchivo</a>";
header() es para redireccionar.
espero te sirva.

saludos
__________________
http://www.rollermountain.com
  #3 (permalink)  
Antiguo 28/02/2007, 12:46
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Re: Problemas con header()

Mentira, header no es solamente para redireccionar.
Weno, buscando en google encontre esto:
http://www.webexperto.com/articulos/...a-de-archivos/

Tal vez te sirva
__________________
Sin Ideas
  #4 (permalink)  
Antiguo 28/02/2007, 13:07
Avatar de deet  
Fecha de Ingreso: mayo-2005
Ubicación: Córdoba - Argentina
Mensajes: 269
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: Problemas con header()

hola oso96_2000,
yo utilizo estas cabeceras para forzar la descarga de archivos

$path='directorio/a/tu/archivo/';
header("Pragma: no-cache");
header("Expires: 0");
header("Content-Transfer-Encoding: binary");
header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=$file");
readfile($path."$file");

espero que te sirvan.
  #5 (permalink)  
Antiguo 28/02/2007, 13:13
 
Fecha de Ingreso: julio-2005
Mensajes: 24
Antigüedad: 18 años, 9 meses
Puntos: 0
Re: Problemas con header()

Ya intenté con lo que viene en esa página, es muy parecido al código que he estado utilizando pero aún asi se baja un archivo vacio

Otra opinión respecto a este problema?
  #6 (permalink)  
Antiguo 28/02/2007, 13:38
Avatar de deet  
Fecha de Ingreso: mayo-2005
Ubicación: Córdoba - Argentina
Mensajes: 269
Antigüedad: 18 años, 11 meses
Puntos: 1
Re: Problemas con header()

si te descarga una pagina en blanco se debe a que no encuentra el archivo, tal vez tengas la ruta o el archivo mal escrito (mayúsculas y minúsculas), también puede ser un tema de permisos de las carpetas de tu servidor.

prueba en codificar la url, por si tiene espacios u caracteres extraños.
$path=rawurlencode('directorio/a/tu/archivo/');

también prueba en poner la ruta absoluta a tu archivo p.e.:
$path='http://www.tudominio.com/directorio/a/tu/archivo/';

$path='directorio/a/tu/archivo/';
header("Pragma: no-cache");
header("Expires: 0");
header("Content-Transfer-Encoding: binary");
header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=$file");
readfile($path.$file);
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 17:25.