Foros del Web » Programando para Internet » PHP »

Problema: readfile + archivo con espacios + Firefox.

Estas en el tema de Problema: readfile + archivo con espacios + Firefox. en el foro de PHP en Foros del Web. Hola amigos, Hace unas 4 horas estoy con un problema y no se como resolverlo. Tengo mas de 400 archivos para descargar en mi web ...
  #1 (permalink)  
Antiguo 07/05/2007, 18:20
 
Fecha de Ingreso: mayo-2005
Mensajes: 278
Antigüedad: 18 años, 10 meses
Puntos: 3
Problema: readfile + archivo con espacios + Firefox.

Hola amigos,

Hace unas 4 horas estoy con un problema y no se como resolverlo. Tengo mas de 400 archivos para descargar en mi web y la funcion en php para descarga siempre funciono en IE. Ahora que Firefox es mas popular (yo lo uso) me encuentro con que dicha funcion no me permite descargar los archivos cuyos nombres tieen espacios en blanco (solo en firefox). Por ejemplo.. "el quijote de la mancha.pdf"

La funcion es:

header ("Content-Disposition: attachment; filename=$nombre\n\n");
header("Content-Type: application/force-download");
header("Content-Length: ".@filesize($enlace));
@readfile($enlace);

Se me ocurre completar los espacios con algun caracter que firefox si reconozca, pero no encuentro como hacerlo. Tal vez esa no sea la solucion.

Espero sus ayudas. Gracias!
  #2 (permalink)  
Antiguo 07/05/2007, 18:57
Avatar de zick  
Fecha de Ingreso: mayo-2007
Ubicación: Los Angeles - Chile
Mensajes: 168
Antigüedad: 16 años, 10 meses
Puntos: 2
Re: Problema: readfile + archivo con espacios + Firefox. Ayuda?

Hola,

es posible que puedas resolver el problema con un ereg_replace, teniendo en cuenta los espacios de los nombres de archivos. Por lo general, lo que hace el IE con los espacios, los trasforma en "%20" para darles algo como un formato, por lo tanto, podrias probar con esto:

Código:
$archivo = ereg_replace(" ","%20",$nombre);
header ("Content-Disposition: attachment; filename=$archivo\n\n"); 
header("Content-Type: application/force-download");
header("Content-Length: ".@filesize($enlace));
@readfile($enlace);
Ojala te sirva...

Zick Corporation
Creando Soluciones a su Medida
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 11:39.