Descargar archivos del servidor - CGI de Perl
Interesante: Vídeo Tutorial del CGI de Perl
Interesante: Vídeo Tutorial del lenguaje Perl
Vamos a seguir profundizando con CGI y en esta ocasión vamos a ver un ejemplo con el cual podrás forzar la descarga de cualquier archivo con Perl, es decir, archivos de texto, imágenes(jpg, png, gif, ...), pdf, ...
Para este ejemplo crea una carpeta llamada download en la carpeta tutorial-cgi, en esta carpeta puedes alojar los archivos que podrán ser descargados.
Crea un archivo de texto, escribe algo en él y guárdalo en la carpeta download con el nombre que quieras, yo lo llamaré prueba.txt, también vamos a crear
un script CGI que será el encargado de realizar la descarga, llámalo como download.cgi y guárdalo en la carpeta cgi-bin ...
#!"C:\xampp\perl\bin\perl.exe" #Descarga de archivos del servidor con CGI use strict; use CGI; #Objeto CGI my $cgi = new CGI; #Ruta del archivo my $ruta = "../download/prueba.txt"; #Apertura del archivo para lectura open(FILE, "<", $ruta); binmode(FILE); #Obtener el tamaño del fichero my $size = -s $ruta; #Declarar la variable que obtendrá el buffer de datos my $datos; #Lectura del fichero read(FILE, $datos, $size); #Cerrar el fichero close(FILE); #---------------------------------------------------------------------------- #Llamar a CGI e incluir las cabeceras para la descarga del archivo print $cgi->header(-type=>'x-download', -attachment=>'prueba.txt'), $datos; #Otra forma de llamar a CGI incluyendo cabeceras, es lo mismo que lo anterior #print "Content-type: x-download\n"; #print "Content-disposition: attachment; filename=prueba.txt\n\n"; #print $datos; #----------------------------------------------------------------------------
Ejecuta en el navegador http://localhost/tutorial-cgi/cgi-bin/download.cgi y te mostrará la ventana de descarga ...
Ok, como puedes ver en el script viene comentada cada acción, puedes probar a alojar imágenes en la carpeta download y forzar su descarga, para ello tienes que modificar el nombre del archivo a descargar, este pequeño programa se puede perfeccionar mediante peticiones POST o GET como veremos más adelante en este tutorial, también es interesante que entiendas el modo en que CGI trabaja con las cabeceras, en el script se muestra dos formas de construir cabeceras, ambas son totalmente válidas, ahora tu escoges la que más te guste.
Si quieres saber más sobre cabeceras(headers) te aconsejo que eches un vistazo a la siguiente página ... HEADERS HTTP
No hay comentarios:
Publicar un comentario