たつをの ChangeLog : 2011-11-14

Perl で multipart/form-data を POST する方法について。
下記のページのサンプルプログラムがシンプルで分かりやすいです。

- POST a Multipart request in Perl via LWP
http://ullu.wordpress.com/2010/08/19/post-a-multipart-request-in-perl-via-lwp/

このプログラムをさらに削って ssuploader.cgi [2008-08-12-1]へファイルをアップするのを書きました。

■コード(upload-file.pl):
#!/usr/bin/perl
use strict;
use warnings;

use LWP::UserAgent;
use HTTP::Request::Common;
 
my $url = "http://..../ssuploader.cgi";
my $fn = shift @ARGV;
 
my $ua = LWP::UserAgent->new;
my $req = POST(
    $url,
    'Content_Type' => 'multipart/form-data',
    'Content' => [ mode => 'up', file_name => [$fn] ],
    );
 
my $res = $ua->request($req);

■実行例:
% ./upload-file.pl ./a.txt

なお ssuploader.cgi の吐くフォームはこんな感じ。
<form method="post" enctype="multipart/form-data" name="upup">
<input type="file" name="file_name">
<input type="hidden" name="mode" value="up">
<input type="submit" value="アップロード">
</form>

たつをの ChangeLog
Powered by chalow