Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Crear un espacio en mi web donde alojar y descargar archivos.

Estas en el tema de Crear un espacio en mi web donde alojar y descargar archivos. en el foro de PHP en Foros del Web. Buenas tardes a todos. Les comento en breve la situación: Estoy tratando de armar en mi web un espacio donde pueda subir y bajar archivos ...
  #1 (permalink)  
Antiguo 05/11/2013, 15:08
 
Fecha de Ingreso: marzo-2011
Mensajes: 40
Antigüedad: 13 años, 1 mes
Puntos: 0
Crear un espacio en mi web donde alojar y descargar archivos.

Buenas tardes a todos.

Les comento en breve la situación:

Estoy tratando de armar en mi web un espacio donde pueda subir y bajar archivos desde cualquier PC.

El código que uso es el siguiente:

Código PHP:
<?php 
$files 
glob("archivos/*.*"); 
if(
count($files) > 0)
{
    foreach(
$files as $file)
    {
            echo 
"<a href=\"".$file."\">".$file."</a><br/>"
    }
    }
else
{
    echo 
'La carpeta esta vacía';
}
?>
El problema que me da este código es que, si bien me genera el listado de la carpeta con su respectivo link, cuando le doy al link no lo descarga.

Mi navegador intenta abrir el archivo en una pestaña nueva.

Bueno, si fuesen imagenes y archivos pdf o word, etc, no tendría problema porque puedo descargarlos de todas formas. Pero con otros tipos de archivos u otras extensiones comienzan los problemas de que no puede abrir el archivo ni puedo descargarlo.

Después de buscar por la web, encontre una pequeña solución, que si comprimía el archivo en un zip, podría descargarlo tan solo haciendo click en el link.

Entonces armé el siguiente código, pero no llegue a nada bueno. Se me genera un zip que dice por ej: archivo.ndtzip y al hacer clic en el link me da error 404.

Código PHP:
<?php 
$files 
glob("archivos/*.*"); 
if(
count($files) > 0)
{
    foreach(
$files as $file)
    {
        
$zip = new ZipArchive();
$filename $file.zip;

if (
$zip->open($filenameZipArchive::CREATE)!==TRUE) {
    exit(
"cannot open <$filename>\n");
}

$zip->addFile("$file");
echo 
"Cantidad de Ficheros: " $zip->numFiles "\n <br />";
echo 
"Estado:" $zip->status "\n <br />";
$zip->close();
            echo 
"<a href=\"".$file."\".zip>".$file."</a><br/>";
    }
    }
    else {
            echo 
'Error creando '.$filename;
    }
    
?>
Con este código lo que me pasa es que me dice el número de ficheros y el estado de cada zip que se crea, pero cuando reviso la carpeta no hay ningún zip. Y el link que creo al final me lleva al archivo original y no al zip creado.

Dónde la estoy pifiando ?. Quizá sea un error tonto porque ya estoy cansado, llevo horas intentando hacer funcionar esto.

Les dejo un saludo y gracias de antemano.
  #2 (permalink)  
Antiguo 05/11/2013, 15:20
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Crear un espacio en mi web donde alojar y descargar archivos.

De hecho creo que el tema es algo avanzado y por lo que alcanzo a entender te supera por mucho el problema.

Son cosas diferentes listar archivos y descargarlos, no puedes pretender hacer ambas cosas al mismo tiempo, desde ahí ya estás abordando mal el asunto.

Te sugiero aprender a forzar descargas primero, tal vez sea lo único que necesitas, crear una lista de enlaces que vayan hacia un script download.php y él se encargue de hacer la descarga.

Código HTML:
Ver original
  1. <a href="download.php?get=file.txt">link</a>

Ya en el script debe ser muy simple:
Código PHP:
Ver original
  1. $file = $_GET['get'];
  2. $path = 'archivos';
  3.  
  4. $fullpath = "$path/$file";
  5.  
  6. if (is_file($fullpath)) {
  7.   // código para forzar descarga
  8. }

Claro que lo que te muestro es sólo un ejemplo y es inseguro, pero espero entiendas la idea.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 06/11/2013, 12:38
 
Fecha de Ingreso: marzo-2011
Mensajes: 40
Antigüedad: 13 años, 1 mes
Puntos: 0
Respuesta: Crear un espacio en mi web donde alojar y descargar archivos.

Hola,

Gracias por tu respuesta pateketrueke, con ayuda de tus comentarios pude buscar en google y encontrar muchos tutoriales sobre forzar descargas y como usarlos.

También entendi porque me dijiste que el método "simple" era inseguro.

Ya pude solucionar mi problema. Te deje rep+ :)

Saludos !.

Etiquetas: alojar, espacio
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 08:37.