HTTP upload selze pro 4095 a 4096 bajtu?

Jan Kasprzak kas na informatics.muni.cz
Pondělí Červenec 28 15:23:32 MEST 2003


	Zdravim,

	mam takovy problem s Perlem (nebo mozna s Apachem). V prvni fazi
bych se chtel zeptat, jestli jste se s necim podobnym nesetkali. Problem
je ten, ze pokud pres POST uploaduju 4095 nebo 4096 bajtu velky soubor,
dostanu na strane HTTP serveru jen 4094 bajtu.

	Na strane HTTP serveru mam tento CGI skript:

---------------------------------------------
#!/usr/bin/perl -w

use CGI;

my $q = new CGI;
my $fh = $q->upload('file');

print "Content-Type: text/plain\n\n";
print "Delka je ", (stat($fh))[7], "\n";

exit 0;
---------------------------------------------

	Na klientovi volam zhruba toto:

---------------------------------------------
#!/usr/bin/perl -w

use LWP::UserAgent;
use HTTP::Request::Common;

my $ua = new HTTP::UserAgent;

my $size = 4095;

open TELO, ">/tmp/telo" or die "Can't open /tmp/telo: $!";
print TELO "x" x $size;
close TELO;

if ((stat('/tmp/telo'))[7] ne $size) {
        die "Nespravna velikost tela: ocekavam $size, je " . (stat(_))[7];
}

my $rv = $ua->request(POST 'http://faidra01.fi.muni.cz/system/upload_test.pl',
        Content_Type => 'form-data',
        Content => [
                file => ['/tmp/telo', '/tmp/telo', Content_Type=>'application/oc
tet-stream']
        ]);

print $rv->content;

--------------------------------------------

	Pokud nastavim $size = 4094 nebo 4097, projde to spravne.
Pokud nastavim 4095 nebo 4096, dostanu na druhe strane pouze 4094 bajtu
velky uploadovany soubor.

	Delam neco spatne?

-Y.

-- 
| Jan "Yenya" Kasprzak  <kas at {fi.muni.cz - work | yenya.net - private}> |
| GPG: ID 1024/D3498839      Fingerprint 0D99A7FB206605D7 8B35FCDE05B18A5E |
| http://www.fi.muni.cz/~kas/   Czech Linux Homepage: http://www.linux.cz/ |
|__ If you want "aesthetics", go play with microkernels. -Linus Torvalds __|


Další informace o konferenci Perl