Página 1 de 1

Descarga de archivos

NotaPublicado: 2005-07-26 12:51 @577
por el_aislante
Hola, tengo una duda...

La situación es que no puede hacer un cgi que se descarge un archivo ZIP.
Básicamente lo que deseo es que un archivo en el servidor llamado:

Miarchivo.abc

que en realidad es un archivo "programa.zip"... sea mandado como tal...

Uso lo siguiente
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3. print "content-type: application/zip\n\n";
  4. open Archivo, "Miarchivo.abc";
  5. while (<Archivo>){
  6.       Print;
  7. }
  8. close Archivo;
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4

El navegador sí despliega la ventana de descargar archivo, pero manda un archivo de longitud cero.

Supongo para esto también requiero mandar información del nombre del archivo, tamaño del archivo, etc....

¿Cómo puedo hacer para que esta tarea sea efectiva?

Gracias...

manda archivo ZIP

NotaPublicado: 2005-07-26 15:50 @701
por el_aislante
Hola, yo de nuevo...

En el código anterior la arreglé un poquito. pero bueno, el chiste es que el CGI manda un archivo.zip, solo que cuando el navegador abre la ventana de Guardar como..., aparece el nombre del cgi con la extensión .zip...

¿Cómo puedo decir cómo se llamará el archivo en realidad?
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3. print "content-type: application/zip\n";
  4. print "content-length: 4013961\n";
  5. print "accept-ranges: bytes\n\n";
  6.  
  7. open (Archivo, "< MiArchivo.abc");
  8. while (<Archivo>){
  9.   print;
  10. }
  11. close (Archivo);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


¿Es posible con una etiqueta así?

print "content-file: nuevonombre.zip\n";

o

print "content-name: nuevonombre.zip\n";

pues ninguna de las dos anteriores me ha funcionado...

¿Alguien conoce la etiqueta que debo mandar para especificar cómo se llamará el archivo?

Gracias

archivo ZIP

NotaPublicado: 2005-07-26 16:18 @720
por el_aislante
Hola...

Creo ya haber encontrado cómo hacerle...

Para el que le interese aquí le dejo mi solución...

Por medio de un script "BajarArchivo.cgi"...
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3. print "content-type: application/zip\n";
  4. print "Content-disposition: attachment; filename=MiArchivo.zip\n"; #<---
  5. print "content-length: 9013961\n";
  6. print "accept-ranges: bytes\n\n";
  7.  
  8. open (Archivo, "< ArchivoOrigen.adb");#<---
  9. while (<Archivo>){
  10.   print;
  11. }
  12. close (Archivo);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Esto hará que el navegador, cuando despliega la ventana de "Guardar como..." aparezca el nombre de archivo que queramos.

Gracias...