PHP SDK
Our PHP SDK allows you to automate the uploading of files through the Transloadit REST API using PHP.
It can be installed via Composer.
Install
composer require transloadit/php-sdk
Keep your Transloadit account's Auth Key & Secret nearby. You can check the API credentials page for these values.
Usage
1. Upload and resize an image from your server
This example demonstrates how you can use the SDK to create an Assembly on your server.
It takes a sample image file, uploads it to Transloadit, and starts a resizing job on it.
<?php
require 'vendor/autoload.php';
use transloadit\Transloadit;
$transloadit = new Transloadit([
'key' => 'YOUR_TRANSLOADIT_KEY',
'secret' => 'YOUR_TRANSLOADIT_SECRET',
]);
$response = $transloadit->createAssembly([
'files' => ['/PATH/TO/FILE.jpg'],
'params' => [
'steps' => [
'resize' => [
'robot' => '/image/resize',
'width' => 200,
'height' => 100,
],
],
],
]);
// Show the results of the assembly we spawned
echo '<pre>';
print_r($response);
echo '</pre>';
2. Create a simple end-user upload form
This example shows you how to create a simple Transloadit upload form that redirects back to your site after the upload is done.
Once the script receives the redirect request, the current status for this Assembly is
shown using Transloadit::response()
.
$response
is fetched. You should use
the notify_url
parameter for this.
<?php
require 'vendor/autoload.php';
use transloadit\Transloadit;
$transloadit = new Transloadit([
'key' => 'YOUR_TRANSLOADIT_KEY',
'secret' => 'YOUR_TRANSLOADIT_SECRET',
]);
// Check if this request is a Transloadit redirect_url notification.
// If so fetch the response and output the current assembly status:
$response = Transloadit::response();
if ($response) {
echo '<h1>Assembly Status:</h1>';
echo '<pre>';
print_r($response);
echo '</pre>';
exit();
}
// This should work on most environments, but you might have to modify
// this for your particular setup.
$redirectUrl = sprintf('http://%s%s', $_SERVER['HTTP_HOST'], $_SERVER['REQUEST_URI']);
// Setup a simple file upload form that resizes an image to 200x100px
echo $transloadit->createAssemblyForm([
'params' => [
'steps' => [
'resize' => [
'robot' => '/image/resize',
'width' => 200,
'height' => 100,
],
],
'redirect_url' => $redirectUrl,
],
]);
?>
<h1>Pick an image to resize</h1>
<input name="example_upload" type="file">
<input type="submit" value="Upload">
</form>
3. Integrate the jQuery plugin into the previous example
Integrating the jQuery plugin simply means adding a few lines of JavaScript to the previous example. Check the HTML comments below to see what changed.
Alternatively, check out Uppy, our next-gen file uploader for the web.
<?php
require 'vendor/autoload.php';
use transloadit\Transloadit;
$transloadit = new Transloadit([
'key' => 'YOUR_TRANSLOADIT_KEY',
'secret' => 'YOUR_TRANSLOADIT_SECRET',
]);
$response = Transloadit::response();
if ($response) {
echo '<h1>Assembly Status:</h1>';
echo '<pre>';
print_r($response);
echo '</pre>';
exit();
}
$redirectUrl = sprintf('http://%s%s', $_SERVER['HTTP_HOST'], $_SERVER['REQUEST_URI']);
echo $transloadit->createAssemblyForm([
'params' => [
'steps' => [
'resize' => [
'robot' => '/image/resize',
'width' => 200,
'height' => 100,
],
],
'redirect_url' => $redirectUrl,
],
]);
?>
<!--
Including the jQuery plugin is as simple as adding jQuery and including the
JS snippet for the plugin. See https://transloadit.com/docs/sdks/jquery-sdk/
-->
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
var tlProtocol = (('https:' === document.location.protocol) ? 'https://' : 'http://');
document.write(unescape("%3Cscript src='" + tlProtocol + "assets.transloadit.com/js/jquery.transloadit2.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
$(document).ready(function() {
// Tell the transloadit plugin to bind itself to our form
$('form').transloadit();
});
</script>
<!-- Nothing changed below here -->
<h1>Pick an image to resize</h1>
<form>
<input name="example_upload" type="file">
<input type="submit" value="Upload">
</form>
4. Fetch the Assembly Status JSON
You can use the getAssembly
method to get the Assembly Status.
<?php
require 'vendor/autoload.php';
$assemblyId = 'YOUR_ASSEMBLY_ID';
$transloadit = new Transloadit([
'key' => 'YOUR_TRANSLOADIT_KEY',
'secret' => 'YOUR_TRANSLOADIT_SECRET',
]);
$response = $transloadit->getAssembly($assemblyId);
echo '<pre>';
print_r($response);
echo '</pre>';
5. Create an Assembly with a Template.
This example demonstrates how you can use the SDK to create an Assembly with Templates.
You are expected to create a Template on your Transloadit account dashboard and add the Template ID here.
<?php
require 'vendor/autoload.php';
use transloadit\Transloadit;
$transloadit = new Transloadit([
'key' => 'YOUR_TRANSLOADIT_KEY',
'secret' => 'YOUR_TRANSLOADIT_SECRET',
]);
$response = $transloadit->createAssembly([
'files' => ['/PATH/TO/FILE.jpg'],
'params' => [
'template_id' => 'YOUR_TEMPLATE_ID',
],
]);
// Show the results of the assembly we spawned
echo '<pre>';
print_r($response);
echo '</pre>';
Signature Auth
Signature Authentication is done by the PHP SDK by default internally so you do not need to worry about this :)
Example
For fully working examples take a look at
examples/
.
Documentation
See GitHub for the full documentation.
Related blog posts
- Launching new PHP SDK for easy Transloadit integration December 18, 2010