Skip to content

Instantly share code, notes, and snippets.

@agustinhaller
Created February 26, 2014 18:10
Show Gist options
  • Save agustinhaller/9235002 to your computer and use it in GitHub Desktop.
Save agustinhaller/9235002 to your computer and use it in GitHub Desktop.
Given any image url, it uploads to amazon s3
<?php
// Given any image url, it uploads to amazon s3
function UploadImageURL()
{
// $image_url = (isset($_REQUEST["image_url"]) && $_REQUEST["image_url"]!=null) ? $_REQUEST["image_url"] : null;
$image_url = "https://fbcdn-sphotos-a-a.akamaihd.net/hphotos-ak-prn1/t1/p526x296/1965014_10153859707455111_1422873058_n.jpg";
// $image_url = "data:image/jpeg;base64,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";
// First detect if it's a base64 image
if(strpos($image_url,'data:image/') !== false)
{
// It's a base64 image
$image_parts = explode(";base64,", $image_url);
$image_type_aux = explode("image/", $image_parts[0]);
$image_type = $image_type_aux[1];
$image_base64 = $image_parts[1];
}
else
{
// It's not a base64 image, it's a regular url
$file_aux = file_get_contents($image_url);
$headers_aux = get_headers($image_url);
$content_type = parseHeaders($headers_aux, "Content-Type");
$image_type_aux = explode("image/", $content_type);
$image_type = $image_type_aux[1];
$image_base64 = base64_encode($file_aux);
}
$is_image = is_valid_image_type($image_type);
$result = "ERROR";
$s3_url = "none";
if($is_image)
{
$result = "OK";
$s3_url = Photo::UploadImageToAmazon($image_base64, $image_type);
}
// Send response to the user
$response = array("result"=>$result,
"s3_url"=>$s3_url,
"image_type"=>$image_type,
"image_base64"=>$image_base64);
$json_response = json_encode($response);
// var_dump($response);
echo($json_response);
}
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment