我可以用perl上传文件吗?

时间:2014-09-26 16:04:44

标签: perl

我有一个需要将日志文件发送到Web服务器的脚本。

注意:服务器端上传已完成。这是需要上传到服务器的客户端。

在服务器端,我有一个典型的cgi脚本,它接受我以“文件”名称发送的任何.zip文件(示例输入类型=“文件”名称=“文件”)

所以我的问题是:有没有一种简单的方法可以通过perl将.zip文件上传到Web服务器?

简单的东西是理想的,比如: upload_file('http://wherever.com/upload.cgi','somefile.zip');

1 个答案:

答案 0 :(得分:4)

您可以像这样使用HTTP::Request::CommonLWP::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标题。