使用Perl中的curl发送带有效负载的文件

时间:2014-08-21 19:23:07

标签: perl curl

我正在尝试将图片发布到tinyping.com,但我需要在PERL内部完成此操作而不会出现卷曲。这个命令效果很好。

curl -i --user api:****** --data-binary @myImage.png https://api.tinypng.com/shrink

如何在Perl中使用LWP库表达这一点?我在Perl中非常基础。

到目前为止,我有:

use LWP::UserAgent;
use MIME::Base64;


my $img_target_dir = ...;
my $imgname = ...;

#### 
  #not sure if i need to convert to BASE64
  open (IMAGE, "$img_target_dir$imgname") or die "$!";
  $raw_string = do{ local $/ = undef; <IMAGE>; };
  $encoded = MIME::Base64::encode_base64( $raw_string );
####
my $content = post(
    "https://api:***************************\@api.tinypng.com/shrink", 
    Content_Type => 'image/png', 
        Content =>[
        ]
) or die print "failure\n";

1 个答案:

答案 0 :(得分:0)

我最终只是蜷缩起来。效果很好。

    ###### tinyPNG.com ######
    my @file = "$img_target_dir$imgname";
    print "Sending the PNG for compression at tinyPNG.com\n";
    my $curl = `/usr/local/bin/curl -ki --user api:**************** --data-binary @"@file" https://api.tinypng.com/shrink`;
    $curl=~ /Location: (.*)/;
    my $url = "$1";
    print "Image Compressed At: $url</b>\n";
    my $curl2 = `/usr/local/bin/curl -k "$url" > "@file"`;
    chmod(0775, "@file");
    #########################