For Programmers: Free Programming Magazines  


Home > Archive > PERL Beginners > January 2008 > perl for uploading file shows weird characters.









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author perl for uploading file shows weird characters.
Patrik Hasibuan

2008-01-12, 7:02 pm

Dear my friends...

I am still new in perl.

I am writing perl-cgi application for uploading a file. I did "chmod=20
777 ../../artikel". But I get weird displayed message:
"
ueri: ------------4CyrMz2ZeGIClwYfFsVdcv Co........
=C3=AE 6=C3=AA=C3=8E]=C3=8B k=C5=A1f=C3=BEx=C3=AE=C2=A3=CB=86=C2=B7=
C2=BE =
=C3=B0fS4M3>=C2=BA {=C2=BD=E2=80=A1< =C3=93=C3=B6=C3=B9=C2=B3=C2=AE=EF=BF=BD=

=C2=AF3=C3=A7=C3=BDG=C3=A8B=C3=B9=3D =E2=80=9E=C2=AC=C3=88=E2=80=BA=C3=B8R=
=C6=92.....
&=C6=92 =C3=BF=C6=92&m=E2=80=A1=C3=AE=C3=B8'-n n=C3=8A=C3=90J(p=C3=87 9=C3=
=A7q=C3=AE=C3=8E.........
=C3=8A =C2=A8=E2=80=9A=C2=A1=C3=80=C3=9C E=C3=96=EF=BF=BD=C3=82 z!=C2=AA=CB=
=9CY6=EF=BF=BD=C2=AC=C3=BA=C3=92=E2=80=9
E=C3=A20J=C2=BC=E2=80=9C=C3=B1=C3=
=8B.......
[end so on. very longg.............]
".

And no file copied/uploaded in '../../artikel'. But inserting the record on=
to=20
the mysql run properly.

Please tell me why.....

Here I have done:
deartikel.cgi-->cgideartikel.cgi-->cgiuploadfile.cgi ('-->' means 'calls').
=3D=3D=3D
deartikel.cgi:
=2D--
#!/usr/bin/perl -w
#use strict;
use CGI qw(:standard);
use CGI::Carp qw(warningsToBrowser fatalsToBrowser);

print "Content-type: text/html\n\n";
print "<html>";
print "<head>";
print "</head>";
print "<body><font style=3D\"Arial,Arial Black,Helvetica\" size=3D1>";
print " <form method=3D\"post\" action=3D\"cgideartikel.cgi\"> ";
print "Title of file <input type=3D\"text\" name=3D\"judul\" size=3D60=20
autocomplete=3D\"ON\"> ";
print "<input type=3D\"submit\" value=3D\"Submit to column 'Articles'.\">
<input type=3D\"reset\" value=3D\"Input lagi?\">
print " </form> ";
print "</body>";
print "</html>";
=3D=3D=3D
cgideartikel.cgi:
=2D--
#!/usr/bin/perl -w
use CGI qw(:standard);
use CGI::Carp qw(warningsToBrowser fatalsToBrowser);
use DBI;

print "Content-type: text/html\n\n";
print "<html>";
print "<head>";
print "<title>";
print "Online Science Org - Data entry kolom karir.";
print "</title>";
print "</head>";
print "<body><font style=3D\"Arial,Arial Black,Helvetica\" size=3D1>";
$pjg=3D$ENV{"CONTENT_LENGTH"};
read(STDIN, $kueri, $pjg);
#print "kueri: $kueri<br>";
@arr_prm=3Dsplit("&",$kueri);
foreach $myprm(@arr_prm){
($namavar,$nilaivar)=3Dsplit("=3D",$myprm);
$assprm{$namavar}=3D$nilaivar;
}
$i=3D0;
foreach my $nv(keys %assprm){
print "$nv <br>";
print "$assprm{$nv} <br>";
print "i =3D $i <br>";
$i++;
}

$judul=3D$assprm{'judul'};
print " <form method=3D\"post\" action=3D\"cgiuploadartikel.cgi\"=20
enctype=3D\"multipart/form-data\"> ";
print "Judul<input type=3D\"text\" name=3D\"judul\" size=3D60 autocomplete=
=3D\"ON\"=20
value=3D\"$judul\" readonly> ";
print "File untuk di-upload";
print " <input type=3D\"file\" name=3D\"url\" size=3D60 autocomplete=3D\"ON=
\"> ";
print "<input type=3D\"submit\" value=3D\"Submit to column 'Artikel'.\">
<input type=3D\"reset\" value=3D\"Input lagi?\">";
print " </form> ";
print "</body>";
print "</html>";
&simpan(judul);

sub simpan{
my $myjudul=3Dshift;
my $box=3D"localhost";
my $basisdata=3D"mydb";
my $db_user_name=3D'root';
my $db_password=3D'mypw';
my $dsn=3D"DBI:mysql:$basisdata:$box";

my $dbh =3D DBI->connect($dsn, $db_user_name, $db_password);
my $sqlstr=3Dqq{
insert into=20
artikel (
judul,
)
values(
'$myjudul'
)
};
my $sth =3D $dbh->prepare($sqlstr);
my $status=3D$sth->execute();
if($status){
$sth->{Commit};
}else{
$sth->{RollBack};
}
$dbh->disconnect;
}
=2D--
cgiuploadfile.cgi:
=2D--
#!/usr/bin/perl -w
use CGI qw(:standard);
use CGI::Carp qw(warningsToBrowser fatalsToBrowser);
print "Content-type: text/html\n\n";
print "<html>";
print "<head>";
print "<title>";
print "Online Science Org - Data entry kolom karir.";
print "</title>";
print "</head>";
print "<body>";

$pjg=3D$ENV{"CONTENT_LENGTH"};
read(STDIN, $kueri, $pjg);
print "kueri: $kueri<br>";
exit;
@arr_prm=3Dsplit("&",$kueri);
foreach $myprm(@arr_prm){
($namavar,$nilaivar)=3Dsplit("=3D",$myprm);
$assprm{$namavar}=3D$nilaivar;
}
$i=3D0;
foreach my $nv(keys %assprm){
print "$nv <br>";
print "$assprm{$nv} <br>";
print "i =3D $i <br>";
$i++;
}

$judul=3D$assprm{'judul'};
$url=3D$assprm{'url'};
print " <form method=3D\"post\" action=3D\"cgiuploadartikel.cgi\"=20
enctype=3D\"multipart/form-data\"> ";
print " <input type=3D\"text\" name=3D\"judul\" size=3D60 autocomplete=3D\"=
ON\"=20
value=3D\"$judul\" readonly> ";
print "File untuk di-upload";
print " <input type=3D\"file\" name=3D\"url\" size=3D60 autocomplete=3D\"ON=
\"=20
readonly> ";
print "<input type=3D\"submit\" value=3D\"Submit to column 'Artikel'.\" dis=
abled>
<input type=3D\"reset\" value=3D\"Input lagi?\" disabled>";
print " </form> ";
print "</td></tr>";

my $output_file =3D "../../artikel/$url";
my ($bytesread, $buffer);
my $numbytes =3D 2000;
open (OUTFILE, ">", "$output_file")=20
or die "Couldn't open $output_file for writing: $!";
while ($bytesread =3D read($url, $buffer, $numbytes)) {
print OUTFILE $buffer;
}
close OUTFILE;

print "</table>";
print "</font></body>";
print "</html>";
=2D-=20
Patrik Hasibuan
Junior Programmer
http://www.penguin-teknologi.com
=2D-=20
Patrik Hasibuan
Junior Programmer
http://www.penguin-teknologi.com
Gunnar Hjalmarsson

2008-01-12, 7:02 pm

[ please do not multi-post! ]

Patrik Hasibuan wrote:
> I am writing perl-cgi application for uploading a file. I did "chmod
> 777 ../../artikel". But I get weird displayed message:
> "
> ueri: ------------4CyrMz2ZeGIClwYfFsVdcv Co........
> î 6êÎ]Ë kšfþx·¾ ðfS4M3>º {½‡<Óöù³®�¯3çýGèBù= „¬È›øRƒ.....
> &ƒ ÿƒ&m‡îø'-n nÊÐJ(pÇ 9çqîÎ.........
> Ê ¨‚¡ÀÜ EÖ� z!ª˜Y6�¬úÒ„â0J¼“ñË.......
> [end so on. very longg.............]
> ".
>
> And no file copied/uploaded in '../../artikel'. But inserting the record onto
> the mysql run properly.
>
> Please tell me why.....
>
> Here I have done:


Well, the code you posted is far too much to my taste. Please post a
_small_ but complete program that illustrates the problem you are having.

--
Gunnar Hjalmarsson
Email: http://www.gunnar.cc/cgi-bin/contact.pl
Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com