Perl で multipart/form-data を POST する
2011-11-14-1
[Programming]
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):
■実行例:
なお ssuploader.cgi の吐くフォームはこんな感じ。
下記のページのサンプルプログラムがシンプルで分かりやすいです。
- 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>