Sample code for 30+ languages & platforms
PHP Extension

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 PHP Extension Downloads

PHP Extension
<?php

include("chilkat.php");

$success = false;

$rest = new CkRest();
$bTls = true;
$bAutoReconnect = true;
$success = $rest->Connect('example.com',443,$bTls,$bAutoReconnect);
if ($success == false) {
    print $rest->lastErrorText() . "\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 = new CkBinData();
$bLoaded = $bdBody->LoadFile('qa_data/image.png');
if ($bLoaded != true) {
    print 'Failed to load the part body file.' . "\n";
    exit;
}

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

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

print $responseText . "\n";

?>