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:
Muchas gracias <?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' ;
}
?>
// 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' ;
}
?>