Foros del Web » Programando para Internet » PHP »

Listar links de descarga de archivos de un directorio

Estas en el tema de Listar links de descarga de archivos de un directorio en el foro de PHP en Foros del Web. Hola, Tengo el siguiente código para que me lista todos los nombres de los ficheros que hay en un directorio: <?php //comprobamos que sea una ...
  #1 (permalink)  
Antiguo 11/04/2016, 05:50
 
Fecha de Ingreso: noviembre-2003
Mensajes: 27
Antigüedad: 20 años, 4 meses
Puntos: 0
Listar links de descarga de archivos de un directorio

Hola,

Tengo el siguiente código para que me lista todos los nombres de los ficheros que hay en un directorio:

<?php
//comprobamos que sea una petición ajax
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
{

//obtenemos el archivo a subir
$file = $_FILES['archivo']['name'];

//comprobamos si existe un directorio para subir el archivo
//si no es así, lo creamos
if(!is_dir("repositorio/"))
mkdir("repositorio/abril 2016", 0777);

//comprobamos si el archivo ha subido
if ($file && move_uploaded_file($_FILES['archivo']['tmp_name'],"repositorio/".$file))
{
sleep(3);//retrasamos la petición 3 segundos
echo $file;//devolvemos el nombre del archivo para pintar la imagen
}
}else{
throw new Exception("Error Processing Request", 1);


El problema es que ahora lo que necesito es que el usuario pueda descargar en su equipo cada uno de esos ficheros, es decir, que al pinchar en cada uno de ellos lance la descarga del mismo.

Alguna ayuda o sugerencia para poder mostrar los enlaces de descarga?

Gracias por anticipado
  #2 (permalink)  
Antiguo 11/04/2016, 05:52
 
Fecha de Ingreso: noviembre-2003
Mensajes: 27
Antigüedad: 20 años, 4 meses
Puntos: 0
Respuesta: Listar links de descarga de archivos de un directorio

Perdón, en el post anterior pegué mal la función que utilizo para listar todos los archivos de un determinado directorio. La función correcta es esta:

<?php
//Creamos Nuestra Función
function listFiles($directorio){ //La función recibira como parametro un directorio
if (is_dir($directorio)) { //Comprobamos que sea un directorio Valido
if ($dir = opendir($directorio)) {//Abrimos el directorio

echo '<ul>'; //Abrimos una lista HTML para mostrar los archivos

while (($archivo = readdir($dir)) !== false){ //Comenzamos a leer archivo por archivo

if ($archivo != '.' && $archivo != '..'){//Omitimos los archivos del sistema . y ..

$nuevaRuta = $directorio.$archivo.'/';//Creamos unaruta con la ruta anterior y el nombre del archivo actual

echo '<li>'; //Abrimos un elemento de lista

if (is_dir($nuevaRuta)) { //Si la ruta que creamos es un directorio entonces:
echo '<b>'.$nuevaRuta.'</b>'; //Imprimimos la ruta completa resaltandola en negrita
listFiles($nuevaRuta);//Volvemos a llamar a este metodo para que explore ese directorio.

} else { //si no es un directorio:

echo 'Archivo: '.$archivo; //simplemente imprimimos el nombre del archivo actual

}

'</li>'; //Cerramos el item actual y se inicia la llamada al siguiente archivo

}

}//finaliza While
echo '</ul>';//Se cierra la lista

closedir($dir);//Se cierra el archivo
}
}else{//Finaliza el If de la linea 12, si no es un directorio valido, muestra el siguiente mensaje
echo 'No Existe el directorio';
}
}//Fin de la Función

//Llamamos a la función y le pasamos el nombre de nuestro directorio.
listFiles("repositorio/");
?>

El problema es que ahora lo que necesito es que el usuario pueda descargar en su equipo cada uno de esos ficheros, es decir, que al pinchar en cada uno de ellos lance la descarga del mismo.

Alguna ayuda o sugerencia para poder mostrar los enlaces de descarga?

Gracias por anticipado

Etiquetas: directorio, links
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 14:03.