{"id":716,"date":"2016-07-11T21:38:42","date_gmt":"2016-07-11T16:08:42","guid":{"rendered":"https:\/\/pheonixsolutions.com\/blog\/?p=716"},"modified":"2016-07-11T21:38:42","modified_gmt":"2016-07-11T16:08:42","slug":"php-scriptweburl-to-upload-file-to-s3","status":"publish","type":"post","link":"https:\/\/pheonixsolutions.com\/blog\/php-scriptweburl-to-upload-file-to-s3\/","title":{"rendered":"PHP script\/WebURL to upload file to s3"},"content":{"rendered":"<p><code><\/code>The following script will help you to upload a file to s3 Bucket. The script initially copy the file<\/p>\n<p><b>Prerequisites<\/b><strong>:<\/strong><\/p>\n<ol>\n<li>Webserver which support to run php application<\/li>\n<li>Composer installed on the hosts<\/li>\n<li>AWS access &amp; secret key to upload file<\/li>\n<li>File Size should not be more than 1MB<\/li>\n<\/ol>\n<p><strong>Script Setup:<\/strong><\/p>\n<p>Install aws-sdk on the domain document Root<\/p>\n<pre>composer require aws\/aws-sdk-php<\/pre>\n<p>If composer is not installed, use the following command to install composer.<\/p>\n<pre>curl -sS https:\/\/getcomposer.org\/installer | php<\/pre>\n<p>Copy the following script and upload to documentroot directory. Replace all the bolded lines with Appropriate values<br \/>\n<code>&lt;!-- Php<\/code><\/p>\n<p><code> File to upload image to s3 Bucket<\/code><br \/>\n<code>Author: Dhanasekaran N<\/code><br \/>\n<code>Email:support@pheonixsolutions.com<\/code><br \/>\n<code>Next time even Bigger with more. Love to do it in PHP<\/code><br \/>\n<code>Version:0.1<\/code><br \/>\n<code>--&gt;<\/code><br \/>\n<code>&lt;?php<\/code><br \/>\n<code>require 'vendor\/autoload.php';<\/code><br \/>\n<code> use Aws\\S3\\S3Client;<\/code><br \/>\n<code> use Aws\\S3\\Exception\\S3Exception;<\/code><br \/>\n<code> ini_set('display_errors', 1);<\/code><br \/>\n<code> if(isset($_POST['upload']))<\/code><br \/>\n<code> {<\/code><br \/>\n<code> $target_dir=\"\/tmp\/s3upload\/\";<\/code><br \/>\n<code> $mode=0777;<\/code><br \/>\n<code> echo \"Worray. Its working.....\";<\/code><br \/>\n<code> $filename=$_FILES['s3file']['name'];<\/code><br \/>\n<code> $filesize=$_FILES['s3file']['size'];<\/code><br \/>\n<code> echo $fileextension=pathinfo($filename, PATHINFO_EXTENSION);<\/code><br \/>\n<code> echo $target_file=$target_dir.$filename;<\/code><br \/>\n<code> if(strlen($filename) &gt; 0)<\/code><br \/>\n<code> {<\/code><br \/>\n<code> if($filesize&lt;(1024*1024))<\/code><br \/>\n<code> {<\/code><br \/>\n<code> #echo \"File is less than 1MB. Let's Upload...\";<\/code><br \/>\n<code> if(!is_dir($target_dir))<\/code><br \/>\n<code> {<\/code><br \/>\n<code> mkdir($target_dir,$mode, true);<\/code><br \/>\n<code> }<\/code><br \/>\n<code> \/\/move_uploaded_file($_FILES['s3file']['name'], $target_file);<\/code><br \/>\n<code> if(move_uploaded_file($_FILES['s3file']['tmp_name'], $target_file))<\/code><br \/>\n<code> {<\/code><br \/>\n<code> #echo \"Local Uploaded Successfully\";<\/code><br \/>\n<code> echo $target_file;<\/code><br \/>\n<code> echo \"Lets put the object to s3...\";<\/code><br \/>\n<code> $bucket=\"<strong>&lt;BUCKET-NAME&gt;<\/strong>\";<\/code><br \/>\n<code> $client = new Aws\\S3\\S3Client([<\/code><br \/>\n<code> 'version' =&gt; 'latest',<\/code><br \/>\n<code> 'region' =&gt; '<strong>&lt;Region&gt;<\/strong>',<\/code><br \/>\n<code> 'credentials' =&gt; [<\/code><br \/>\n<code><strong> 'key' =&gt; 'XXXXXX'<\/strong>, # &lt;- Put your Aws Access Key<\/code><br \/>\n<code><strong> 'secret' =&gt; 'xxxxxxx<\/strong>' #&lt;- Put your Secret Key<\/code><br \/>\n<code> ]<\/code><br \/>\n<code> ]);<\/code><br \/>\n<code> try<\/code><br \/>\n<code> {<\/code><br \/>\n<code> echo \"Trying upload to s3\";<\/code><br \/>\n<code> $client-&gt;putObject(array(<\/code><br \/>\n<code> 'Bucket'=&gt;$bucket,<\/code><br \/>\n<code> 'Key' =&gt; '<strong>&lt;PATH To UPLOAD&gt;<\/strong>'.$filename, # &lt;- PATH to Upload. Eg.,Directory\/Subdirectory1<\/code><br \/>\n<code> 'SourceFile' =&gt; $target_file,<\/code><br \/>\n<code> ));<\/code><br \/>\n<code> $message = \"S3 Upload Successful.\";<\/code><br \/>\n<code> echo $message;<\/code><br \/>\n<code> echo \"&lt;script&gt; alert('File Uploaded Successfully')&lt;\/script&gt;\";<\/code><br \/>\n<code> #echo \"Delete the temporary file.\";<\/code><br \/>\n<code> unlink($target_file);<\/code><br \/>\n<code> }<\/code><br \/>\n<code> catch (S3Exception $e) {<\/code><br \/>\n<code> \/\/ Catch an S3 specific exception.<\/code><br \/>\n<code> echo $e-&gt;getMessage();<\/code><br \/>\n<code> }<\/code><br \/>\n<code> }<\/code><br \/>\n<code> else<\/code><br \/>\n<code> {<\/code><br \/>\n<code> echo \"Upload Failed\";<\/code><br \/>\n<code> }<\/code><\/p>\n<p><code>}<\/code><br \/>\n<code> else<\/code><br \/>\n<code> {<\/code><br \/>\n<code> echo \"File is greater than 1MB\";<\/code><br \/>\n<code> }<\/code><br \/>\n<code> }<\/code><br \/>\n<code> else<\/code><br \/>\n<code> {<\/code><br \/>\n<code> echo \"Please Select the file\";<\/code><br \/>\n<code> }<\/code><\/p>\n<p><code>}<\/code><br \/>\n<code>?&gt;<\/code><\/p>\n<p><code>&lt;html&gt;<\/code><br \/>\n<code>&lt;head&gt;<\/code><br \/>\n<code> &lt;title&gt;Pheonix solutions S3 Image upload &lt;\/title&gt;<\/code><br \/>\n<code> &lt;style type=\"text\/css\"&gt;<\/code><br \/>\n<code> .fileUpload {<\/code><br \/>\n<code> position: relative;<\/code><br \/>\n<code> overflow: hidden;<\/code><br \/>\n<code> margin: 10px;<\/code><br \/>\n<code> }<\/code><br \/>\n<code> .fileUpload input.upload {<\/code><br \/>\n<code> position: absolute;<\/code><br \/>\n<code> top: 0;<\/code><br \/>\n<code> right: 0;<\/code><br \/>\n<code> margin: 0;<\/code><br \/>\n<code> padding: 0;<\/code><br \/>\n<code> font-size: 20px;<\/code><br \/>\n<code> cursor: pointer;<\/code><br \/>\n<code> opacity: 0;<\/code><br \/>\n<code> filter: alpha(opacity=0);<\/code><br \/>\n<code>}<\/code><br \/>\n<code> body {<\/code><br \/>\n<code> background-color: lightgrey;<\/code><br \/>\n<code>}<\/code><br \/>\n<code>h1 {<\/code><br \/>\n<code> color: navy;<\/code><br \/>\n<code> margin-left: 20px;<\/code><br \/>\n<code>}<\/code><br \/>\n<code>.btn &gt; .caret,<\/code><br \/>\n<code> .dropup &gt; .btn &gt; .caret {<\/code><br \/>\n<code> border-top-color: #000 !important;<\/code><br \/>\n<code> }<\/code><br \/>\n<code> .btn-success,<\/code><br \/>\n<code>.btn-green {<\/code><br \/>\n<code> color: #ffffff;<\/code><br \/>\n<code> background-color: #00a651;<\/code><br \/>\n<code> border-color: #00a651;<\/code><br \/>\n<code>}<\/code><\/p>\n<p><code>.btn-file {<\/code><br \/>\n<code> overflow: hidden;<\/code><br \/>\n<code> position: relative;<\/code><br \/>\n<code> vertical-align: middle;<\/code><br \/>\n<code>}<\/code><br \/>\n<code>.fileinput-exists .fileinput-new, .fileinput-new .fileinput-exists {<\/code><br \/>\n<code> display: none;<\/code><br \/>\n<code>}<\/code><br \/>\n<code>.fileinput .thumbnail {<\/code><br \/>\n<code> overflow: hidden;<\/code><br \/>\n<code> display: inline-block;<\/code><br \/>\n<code> margin-bottom: 5px;<\/code><br \/>\n<code> vertical-align: middle;<\/code><br \/>\n<code> text-align: center;<\/code><br \/>\n<code>}<\/code><br \/>\n<code>.panel-primary {<\/code><br \/>\n<code> border-color: #ebebeb;<\/code><br \/>\n<code> -webkit-border-radius: 3px;<\/code><br \/>\n<code> -webkit-background-clip: padding-box;<\/code><br \/>\n<code> -moz-border-radius: 3px;<\/code><br \/>\n<code> -moz-background-clip: padding;<\/code><br \/>\n<code> border-radius: 3px;<\/code><br \/>\n<code> background-clip: padding-box;<\/code><br \/>\n<code>}<\/code><\/p>\n<p><code>body {<\/code><br \/>\n<code> font-family: \"Helvetica Neue\", Helvetica, \"Noto Sans\", sans-serif, Arial, sans-serif;<\/code><br \/>\n<code> font-size: 12px;<\/code><br \/>\n<code> line-height: 1.42857143;<\/code><br \/>\n<code> color: #949494;<\/code><br \/>\n<code> background-color: lightgrey;<\/code><br \/>\n<code>}<\/code><br \/>\n<code> &lt;\/style&gt;<\/code><br \/>\n<code>&lt;\/head&gt;<\/code><br \/>\n<code>&lt;body&gt;<\/code><br \/>\n<code>&lt;form action=\"\" method='post' enctype=\"multipart\/form-data\"&gt;<\/code><br \/>\n<code> &lt;h1&gt;&lt;center&gt;Image Upload DashBoard! Build by Pheonix Solutions&lt;\/center&gt;&lt;\/h1&gt;<\/code><br \/>\n<code> &lt;div class=\"main-content\"&gt;<\/code><br \/>\n<code> &lt;div class=\"panel panel-primary \"&gt;<\/code><br \/>\n<code> &lt;label&gt; Please Select the image to upload&lt;\/label&gt;&lt;br&gt;<\/code><br \/>\n<code> &lt;input type='file' class=\"fileinput thumbnail btn btn-file\" name='s3file'\/&gt; &lt;br&gt;<\/code><br \/>\n<code> &lt;\/div&gt;<\/code><br \/>\n<code> &lt;input type='submit' class=\"btn btn-success\" name='upload' value='Upload Image'\/&gt;<\/code><br \/>\n<code> &lt;\/div&gt;<\/code><\/p>\n<p><code>&lt;\/body&gt;<\/code><br \/>\n<code>&lt;\/html&gt;<\/code><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The following script will help you to upload a file to s3 Bucket. The script initially copy the file Prerequisites: [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[1022],"tags":[],"class_list":["post-716","post","type-post","status-publish","format-standard","hentry","category-web-architecture","psol-cat-web-architecture"],"jetpack_publicize_connections":[],"jetpack_shortlink":"https:\/\/wp.me\/phn2x7-by","jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/716","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/comments?post=716"}],"version-history":[{"count":1,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/716\/revisions"}],"predecessor-version":[{"id":11186,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/716\/revisions\/11186"}],"wp:attachment":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/media?parent=716"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/categories?post=716"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/tags?post=716"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}