Perl 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"

Perl Example

use chilkat();

$rest = chilkat::CkRest->new();

#  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->get_ConnectFailReason() . "\r\n";
    print $rest->lastErrorText() . "\r\n";
    exit;
}

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

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

$rest->put_PartSelector("2");
$fileStream2 = chilkat::CkStream->new();
$fileStream2->put_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->put_PartSelector("0");

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

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

$jsonResponse = chilkat::CkJsonObject->new();
$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"
}