POSTによりデータを送受信する: .NET Tips: C#, VB.NET, Visual Studioの「”multipart/form-data”でデータを送信する」の「HttpWebRequestとHttpWebResponseを使った方法」を参考にして、C#でアップロードクライアントを作った。

あと、それを受け取るためのPerl書いた。

俺が作ったC#の方はこっち→SourceCode(VS2005 C#2.0)

サーバー側のPerl。ファイルを受け取った後、元のファイル名にリネームする。これだと受信中に別のPOSTが来たらマズイはず。

CGI::Carpはエラー表示用なので無くても良い

ディレクトリのパーミッションはとりあえず777

#!/usr/bin/perl

usestrict;

usewarnings;

useutf8;

useCGI;

useCGI::Carpqw(fatalsToBrowser);

my$cgi=newCGI;

print$cgi->header(-type=>”text/plain”,

-charset=>”UTF-8″);

my$filename=$cgi->param(‘upfile’);

my$buf;

open(OUTFILE,”>tmpFile”)||die”Can’topenSaveFile!!orz”;

binmode(OUTFILE);

while(read($filename,$buf,1024)){

printOUTFILE$buf;

#print$buf;

}

close(OUTFILE);

rename”tmpFile”,$filename;

print”$filenameuploaded”;