Sample code for 30+ languages & platforms
Perl

Set a Multipart Part Body from BinData

See more REST Examples

Demonstrates Rest.SetMultipartBodyBd, which sets the binary body of the selected multipart part from a BinData.

The file paths are relative to the application's current working directory. Absolute paths may also be used. Supply the paths appropriate to your own environment.

Background. A multipart request is assembled part by part: the part selector chooses the part being built, header fields describe it, and a SetMultipartBody method supplies its content. The request is then sent with a multipart send or full-request method.

Chilkat Perl Downloads

Perl
use chilkat();

$success = 0;

$rest = chilkat::CkRest->new();
$bTls = 1;
$bAutoReconnect = 1;
$success = $rest->Connect("example.com",443,$bTls,$bAutoReconnect);
if ($success == 0) {
    print $rest->lastErrorText() . "\r\n";
    exit;
}

#  The file paths are relative to the application's current working directory.  Absolute paths
#  may also be used.  Supply the paths appropriate to your own environment.

#  Select the multipart part to build, and set its header fields.
$rest->put_PartSelector("1");
$rest->AddHeader("Content-Disposition","form-data; name=\"field1\"");
$rest->AddHeader("Content-Type","image/png");

#  Set the binary body of the selected part from a BinData.
$bdBody = chilkat::CkBinData->new();
$bLoaded = $bdBody->LoadFile("qa_data/image.png");
if ($bLoaded != 1) {
    print "Failed to load the part body file." . "\r\n";
    exit;
}

$success = $rest->SetMultipartBodyBd($bdBody);
if ($success == 0) {
    print $rest->lastErrorText() . "\r\n";
    exit;
}

$responseText = $rest->fullRequestMultipart("POST","/api/upload");
if ($rest->get_LastMethodSuccess() == 0) {
    print $rest->lastErrorText() . "\r\n";
    exit;
}

print $responseText . "\r\n";