How can I upload a file to amazon S3 with Codeigniter/PHP? How can I upload a file to amazon S3 with Codeigniter/PHP? codeigniter codeigniter

How can I upload a file to amazon S3 with Codeigniter/PHP?


I switched to a different S3 PHP library, which is also referred to as S3.php, that is part of this really nice Netuts tutorial source code.

Just plugging in my AWS keys and bucket name into the demo's page.php file, I was able to upload to my bucket in like 2 minutes. So this tutorial is super easy. Very exciting!


in codeigniter

Here link to upload and delete image in s3 bucket

<?phpfunction profile_upload(){    //print_r($_FILES);    if ($this->session->userdata('user_login')) {        $file = $_FILES['agent_profile_file']['tmp_name'];        if (file_exists($file)) {            $allowedExts = array("gif", "jpeg", "jpg", "png");            $typefile    = explode(".", $_FILES["agent_profile_file"]["name"]);            $extension   = end($typefile);            if (!in_array(strtolower($extension), $allowedExts)) {                //not image                $data['message'] = "images";            } else {                $userid = $this->session->userdata['user_login']['userid'];                $full_path = "agent_image/" . $userid . "/profileImg/";                /*if(!is_dir($full_path)){                mkdir($full_path, 0777, true);                }*/                $path = $_FILES['agent_profile_file']['tmp_name'];                $image_name = $full_path . preg_replace("/[^a-z0-9\._]+/", "-", strtolower(uniqid() . $_FILES['agent_profile_file']['name']));                //move_uploaded_file($path,$image_name);                $data['message'] = "sucess";                $s3_bucket = s3_bucket_upload($path, $image_name);                if ($s3_bucket['message'] == "sucess") {                    $data['imagename'] = $s3_bucket['imagepath'];                    $data['imagepath'] = $s3_bucket['imagename'];                }                //print_r($imagesizedata);                //image                //use $imagesizedata to get extra info            }        } else {            //not file            $data['message'] = "images";        }    } else {        $data['message'] = "login";    }    echo json_encode($data);    //$file_name2 = preg_replace("/ /", "-", $file_name);}// Helper file add code// image compress codefunction compress($source, $destination, $quality){    ob_start();    $info = getimagesize($source);    if ($info['mime'] == 'image/jpeg') {        $image = imagecreatefromjpeg($source);    } elseif ($info['mime'] == 'image/gif') {        $image = imagecreatefromgif($source);    } elseif ($info['mime'] == 'image/png') {        $image = imagecreatefrompng($source);    }    $filename = tempnam(sys_get_temp_dir(), "beyondbroker");    imagejpeg($image, $filename, $quality);    //ob_get_contents();    $imagedata = ob_end_clean();    return $filename;}// type for if image then it will reduce size// site for it in web of mobile because mobile webservice image will in base 64// $tempth will file temp path// $image_path will file where to save pathfunction s3_bucket_upload($temppath, $image_path, $type = "image", $site = "web"){    $bucket = "bucket-name";    $data = array();    $data['message'] = "false";    // For website only    if ($site == "web") {        if ($type == "image") {            $file_Path = compress($temppath, $image_path, 90);        } else {            $file_Path = $temppath;        }    }    try {        $s3Client = new S3Client([            'version'     => 'latest',            'region'      => 'us-west-2',            'credentials' => [                'key'    => 'aws-key',                'secret' => 'aws-secretkey',            ],        ]);        // For website only        if ($site == "web") {            $result = $s3Client->putObject([                'Bucket'     => $bucket,                'Key'        => $image_path,                'SourceFile' => $file_Path,                //'body'=> $file_Path,                'ACL'        => 'public-read',                //'StorageClass' => 'REDUCED_REDUNDANCY',            ]);            $data['message']   = "sucess";            $data['imagename'] = $image_path;            $data['imagepath'] = $result['ObjectURL'];        } else {            // $tmp = base64_decode($base64);            $upload            = $s3Client->upload($bucket, $image_path, $temppath, 'public-read');            $data['message']   = "sucess";            $data['imagepath'] = $upload->get('ObjectURL');        }    } catch (Exception $e) {        $data['message'] = "false";        // echo $e->getMessage() . "\n";    }    return $data;}