Retroceder   Foros del Web > Programación para sitios web > PHP
Crea un nuevo usuario o inicia sesión utilizando tu cuenta de Facebook
Connect with Facebook

Respuesta
 
Herramientas Desplegado
Antiguo 07-ene-2009, 02:19   #1 (permalink)
Streamz ha deshabilitado el karma
 
Fecha de Ingreso: enero-2009
Mensajes: 5
Streamz está desconectado
Pregunta [Ayuda] Espacios en php con script

Hola a todos.

La verdad es que no soy un gran experto en la programación de php por lo que requiero ayuda de alguien mas puesto que yo, el tema es que tengo un script por el cual mis usuarios pueden descargarse archivos sin saber cual es el directorio original y así que otras webs no enlacen directamente.

El tema es que todos los archivos que utilizen esta manera "descargar.php?archivo=el_archivo.zip" se baja correctamente, pero si el archivo contiene espacios como "descargar.php?archivo=esto es un archivo.zip" solo reconoce la primera parte "esto". ¿Como puedo hacer que lea los espacios y se descargue?, El script es el siguiente:

Cita:
<?php
// Indicamos el nombre del directório
define ( 'dir' , '23hi938fdfgh39' );

// leer el archivo
$archivo = $_GET [ 'archivo' ];
if( file_exists ( dir . '/' . $archivo )){
// Si existe el archivo lo enviamos
header ( 'Content-Type: application/octet-stream' );
header ( 'Content-Disposition: attachment; filename=' . $archivo );
echo file_get_contents ( dir . '/' . $archivo );
} else {
// Sino existe el archivo enviamos
// un error 404
header ( 'HTTP/1.0 404 Not Found' );
echo '<h1>ERROR</h1><br />No se h' ,
'a encontrado el archivo sol' ,
'icitado' ;
}
?>
Muchas gracias
  Responder Citando
Antiguo 07-ene-2009, 02:26   #2 (permalink)
DarkJ merece que le prestes tu consolaDarkJ merece que le prestes tu consolaDarkJ merece que le prestes tu consola
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.636
DarkJ está desconectado
Respuesta: [Ayuda] Espacios en php con script

¿quieres decir que si haces un echo $archivo solo te muestra "esto"? Curioso, porque no hay ningun problema con PHP recogiendo valores con espacios. ¿Te da el fallo al pinchar en un link, o tambien escribiendo la url directamente en la barra de direcciones? Si es solo en el link, es que has generado mal el HTML.
  Responder Citando
Antiguo 07-ene-2009, 02:33   #3 (permalink)
Streamz ha deshabilitado el karma
 
Fecha de Ingreso: enero-2009
Mensajes: 5
Streamz está desconectado
Respuesta: [Ayuda] Espacios en php con script

Edito:

El echo $archivo lo muestra bien, con su espaciado y demas, el problema viene a la hora de descagar el archivo, es decir en pulsar el link, que la descarga solo reconoce la primera palabra antes del espacio, y se baja el archivo correcto pero el nombre cambiado y por lo tanto la extension se borra.

Última edición por Streamz; 07-ene-2009 a las 02:39
  Responder Citando
Antiguo 07-ene-2009, 03:59   #4 (permalink)
DarkJ merece que le prestes tu consolaDarkJ merece que le prestes tu consolaDarkJ merece que le prestes tu consola
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.636
DarkJ está desconectado
Respuesta: [Ayuda] Espacios en php con script

Prueba con
Código PHP:
header 'Content-Disposition: attachment; filename="' $archivo .'"'); 
  Responder Citando
Antiguo 07-ene-2009, 04:20   #5 (permalink)
Streamz ha deshabilitado el karma
 
Fecha de Ingreso: enero-2009
Mensajes: 5
Streamz está desconectado
Respuesta: [Ayuda] Espacios en php con script

Si que funciona con tu solución, muchas gracias :)
  Responder Citando
Respuesta
No hay votos aún.

Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code está Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado
Trackbacks está Desactivado
Pingbacks está Desactivado
Refbacks está Desactivado



La zona horaria es GMT -6. Ahora son las 17:38.
Políticas de Uso de Foros del Web


Message Board Statistics

SEO by vBSEO 3.3.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100