Sobre el script

Felipe Gouveia - Correio de Caracas gouveia at correiodecaracas.com
Mon Jun 26 11:26:56 CDT 2000


Ernesto
Perdona que te vuelva a incomodar
Hice el cambio que me indicaste pero el servidor me dice que

"The server encountered an internal error or misconfiguration and was unable
to complete your request."

Creo que es porque algo está mal. Repito que recién estoy estudiando
programación y no Perl. Hasta ahora solo he modificado algunos scripts.

Por favor analicelo y digame algo.

Aprovecho para preguntar que site me recomienda sobre Perl (para aprender)
preferiblemente en español, porque en inglés me tardo mucho más leyendo.

¿Tiene algún archivo sobre rotación de banners?

Un abrazo
Felipe Gouveia

El archivo quedó asi:

#!/usr/bin/perl
#file: upload.pl

use CGI qw/:standard/;

print header,
    start_html('file upload'),
    h1('file upload');
print_form()    unless param;
print_results() if param;
print end_html;

sub print_form {
    print start_multipart_form(),
       filefield(-name=>'upload',-size=>60),br,
       submit(-label=>'Upload File'),
       end_form;
}

sub print_results {
    my $length;
    my $file = param('upload');
    if (!$file) {
 print "No file uploaded.";
 return;
    }
    print h2('File name'),$file;
    print h2('File MIME type'),
    uploadInfo($file)->{'Content-Type'};

    open (COPIAR,">../../htdocs/transferencia");
      while
ytes=read($filename,$buffer,1024)){ 
print COPIAR $buffer;
        }
        close(COPIAR);
        close($file);

 $length += length($_);
    }
    print h2('File length'),$length;
}




----- Original Message ----- 
From: Ernesto Hernandez-Novich <emhn at telcel.net.ve>
To: <caracas-pm-list at pm.org>
Sent: Monday, June 26, 2000 11:50 AM
Subject: RE: Presentación


> On Mon, 26 Jun 2000, Felipe Gouveia - Correio de Caracas wrote:
> >#!/usr/bin/perl
> >#file: upload.pl
> >
> >use CGI qw/:standard/;
> >
> >print header,
> >    start_html('file upload'),
> >    h1('file upload');
> >print_form()    unless param;
> >print_results() if param;
> >print end_html;
> >
> >sub pr
int_form {
> >    print start_multipart_form(),
> >       filefield(-name=>'upload',-size=>60),br,
> >       submit(-label=>'Upload File'),
> >       end_form;
> >}
> >
> >sub print_results {
> >    my $length;
> >    my $file = param('upload');
> >    if (!$file) {
> > print "No file uploaded.";
> > return;
> >    }
> >    print h2('File name'),$file;
> >    print h2('File MIME type'),
> >    uploadInfo($file)->{'Content-Type'};
> >    while (<$file>) {
> > $length += length($_);
> >    }
> >    print h2('File length'),$length;
> >}
>
> El programa que adjuntaste solamente permite al usuario indicar el nombre
del
> archivo y en la rutina print_results _solamente_ se indica la longitud del
> archivo; si quieres _salvarlo_ en el servidor, debes abrir un archivo en
algún
> directorio de acceso público o semipúblico y copiar las líneas del
archivo.
>
> En otras palabras, reemplaza el while por
>
> open(COPIAR,">/tmp/subida");
> while (<$file>) {     # Leo de línea en línea
>   print COPIAR $_;
> }
> close(COPIAR);
> close($file);
>
> Si el archivo que se sube es binario (GIF, JPEG, basura
Word/Excel/Powerpoint),
> se complica un poco más porque el concepto de "línea" no existe, de manera
que
> debes usar algo como
>
> open(COPIAR,">/tmp/subida");
> while ($bytes = read($filename,$buffer,1024)) {    # Leo en buffers de 1k
>   print COPIAR $buffer;
> }
> close(COPIAR);
> close($file);
> --
> Ernesto Hernández-Novich - Running Linux 2.2.14 - Unix: Live free or die!
> One thing is to be the best, and another is to be the most popular.
> -----BEGIN GEEK CODE BLOCK-----
> Version: 3.1
> GCS d+(-) s+: a C+++$ UBLAVHIOSC++++$ P++++$ L+++$ E- W+ N++ ?o ?K w--- O-
M- V
> PS+ PE Y+ PGP>++ t+ 5 X+ R* tv+ b++ DI+++$ D++ G>++ e++ h+ r+ y++
> -----END GEEK CODE BLOCK-----
> Para suspender la suscripción a esta lista, favor enviar un e-mail a
> <majordomo at pm.org> colocando "UNSUBSCRIBE caracas-pm-list"
> en el cuerpo.
>


------------------------------------------------------------------------
Enviar e-mail a <majordomo at pm.org> colocando en el cuerpo:
"UNSUBSCRIBE caracas-pm-list" para desuscribirse.
"INFO caracas-pm-list" para conocer las reglas de etiqueta.
------------------------------------------------------------------------



More information about the caracas-pm mailing list