【问题标题】:Perl post request to send zip file as base64?Perl 发布请求以 base64 格式发送 zip 文件?
【发布时间】:2011-05-04 15:27:32
【问题描述】:

我有一个 Perl 脚本尝试使用 LWP UserAgent 模块发送一个 zip 文件

my $req = POST $url, Content_Type => 'form-data',
    Content      => [
        submit => 1,
        upfile =>  [ $fname ]
    ];

其中 $fname 是文件的路径。在服务器端,虽然我的 POST 数组似乎只有“提交”。 我应该对文件进行 base64 编码并将其分配给变量吗?最好的方法是什么?

【问题讨论】:

  • 请发布您的服务器端脚本的代码,我没有看到上面的代码有问题,所以我怀疑您没有正确获取文件数据。

标签: perl lwp


【解决方案1】:

确保文件名可以被解析。但是,如果不能,您应该得到一个错误。至少在我的HTTP::Request::Common 版本中是这样的。

您不必将二进制内容编码为 Base64。 (当然,除非服务器端应用碰巧需要这种格式。)

这是一个完整的示例脚本:

use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Request::Common 'POST';

my $ua = LWP::UserAgent->new;
my $url = 'http://localhost:8888'; # Fiddler
my $req = POST $url,
    Content_Type => 'form-data',
    Content => [
        submit  => 1,
        upfile  => [ 'C:\temp\bla.zip' ],
    ];
my $line = '=' x 78 . "\n";
print $line, $req->as_string;
my $rsp = $ua->request( $req );
print $line, $rsp->as_string;

【讨论】:

  • 啊,我知道我希望文件在 $_POST 数组中提交,所以当我没有看到它时,我以为出了点问题,我才意识到它在 $_FILES 数组中,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-28
  • 2014-06-30
  • 2019-06-19
  • 2018-08-04
  • 2016-06-16
  • 2020-12-31
相关资源
最近更新 更多