PHP ActiveX Stripe: Create a File Upload

Back to Index

Uploads a file to Stripe.

Documentation: https://stripe.com/docs/api/curl#create_file_upload

CURL Command

curl https://files.stripe.com/v1/files \
   -u STRIPE_SECRET_KEY: \
   -F purpose=dispute_evidence \
   -F file="@/path/to/a/file.jpg"

PHP ActiveX Example

<?php

$rest = new COM("Chilkat_9_5_0.Rest");

//  URL: https://files.stripe.com/v1/files
$bTls = 1;
$port = 443;
$bAutoReconnect = 1;
$success = $rest->Connect('files.stripe.com',$port,$bTls,$bAutoReconnect);
if ($success != 1) {
    print 'ConnectFailReason: ' . $rest->ConnectFailReason . "\n";
    print $rest->LastErrorText . "\n";
    exit;
}

$rest->SetAuthBasic('STRIPE_SECRET_KEY','');

$rest->PartSelector = '1';
$rest->AddHeader('Content-Disposition','form-data; name=\'purpose\'');
$rest->SetMultipartBodyString('dispute_evidence');

$rest->PartSelector = '2';
$fileStream2 = new COM("Chilkat_9_5_0.Stream");
$fileStream2->SourceFile = '/path/to/a/file.jpg';
$rest->AddHeader('Content-Disposition','form-data; name=\'/path/to/a/file.jpg\'; filename=\'/path/to/a/file.jpg\'');
$rest->AddHeader('Content-Type','image/jpeg');
$rest->SetMultipartBodyStream($fileStream2);

$rest->PartSelector = '0';

$rest->AddHeader('Expect','100-continue');

$strResponseBody = $rest->fullRequestMultipart('POST','/v1/files');
if ($rest->LastMethodSuccess != 1) {
    print $rest->LastErrorText . "\n";
    exit;
}

$jsonResponse = new COM("Chilkat_9_5_0.JsonObject");
$jsonResponse->Load($strResponseBody);

$id = $jsonResponse->stringOf('id');
$object = $jsonResponse->stringOf('object');
$created = $jsonResponse->IntOf('created');
$filename = $jsonResponse->stringOf('filename');
$purpose = $jsonResponse->stringOf('purpose');
$size = $jsonResponse->IntOf('size');
$type = $jsonResponse->stringOf('type');
$url = $jsonResponse->stringOf('url');

?>

Sample JSON Response Body

{
  "id": "file_1BnEEuGswQrCoh0XqB3XkqAg",
  "object": "file_upload",
  "created": 1516661888,
  "filename": "path",
  "purpose": "sigma_scheduled_query",
  "size": 500,
  "type": "csv",
  "url": "https://stripe-upload-api.s3.amazonaws.com/uploads/file_1BnEEuGswQrCoh0XqB3XkqAg?AWSAccessKeyId=KEY_ID\u0026Expires=TIMESTAMP\u0026Signature=SIGNATURE"
}