我有一个需要将日志文件发送到Web服务器的脚本。
注意:服务器端上传已完成。这是需要上传到服务器的客户端。
在服务器端,我有一个典型的cgi脚本,它接受我以“文件”名称发送的任何.zip文件(示例输入类型=“文件”名称=“文件”)
所以我的问题是:有没有一种简单的方法可以通过perl将.zip文件上传到Web服务器?
简单的东西是理想的,比如: upload_file('http://wherever.com/upload.cgi','somefile.zip');
答案 0 :(得分:4)
您可以像这样使用HTTP::Request::Common
和LWP::UserAgent
:
use strict;
use warnings;
use HTTP::Request::Common;
use LWP::UserAgent;
my $ua = LWP::UserAgent->new(
env_proxy => 1,
);
my $req = POST 'http://someserver.com/upload.cgi',
Content_Type => 'form-data',
Content => [ pageAction => 'upload', file => ['myfile.zip'] ];
$ua->request($req);
这也可以写成
use strict;
use warnings;
use LWP::UserAgent;
my $ua = LWP::UserAgent->new(
env_proxy => 1,
);
$ua->request('http://someserver.com/upload.cgi',
Content_Type => 'form-data',
Content => [ pageAction => 'upload', file => ['myfile.zip'] ]
);
这是因为$ua->post(...)
与$ua->request(POST ...)
相同,但首先处理特殊:name
标题。