Как загрузить изображение в кодировке base64 в ph3 codeigniter - PullRequest
0 голосов
/ 29 ноября 2018

Как загрузить изображение base64 в корзину s3.Я использую CodeIgniter 3, и изображение будет опубликовано на сервере через API Rest

1 Ответ

0 голосов
/ 29 ноября 2018
This code works for me.Please check it
<?php

$image = $this->generateImage($_POST['foto']);

public function generateImage($img)
{

    $folderPath = "uploads/";
    $image_parts = explode(";base64,", $img);
    $image_type_aux = explode("uploads/", $image_parts[0]);
    $image_base64 = base64_decode($image_parts[1]);
    $name = uniqid() . '.png';
    $file = $folderPath . $name;
    file_put_contents($file, $image_base64);
    $this->saveImageAmazomS3($name);

}

function saveImageAmazomS3($image)

    $filePath = base_url()."uploads/".$image;

    require 'vendor/autoload.php';

    $bucketName = 'YOUR_BUCKET_NAME';
    $filePath = './YOUR_FILE_NAME.png';
    $keyName = basename($filePath);
    $IAM_KEY = 'YOUR_SECRET_ACCESS_KEY';
    $IAM_SECRET = 'YOUR_SECRET_ACCESS_CODE';
    use Aws\S3\S3Client;
    use Aws\S3\Exception\S3Exception;
    // Set Amazon S3 Credentials
    $s3 = S3Client::factory(
        array(
            'credentials' => array(
                'key' => $IAM_KEY,
                'secret' => $IAM_SECRET
            ),
            'version' => 'latest',
            'region'  => 'us-east-2'
        )
    );

    try {
        if (!file_exists('/tmp/tmpfile')) {
            mkdir('/tmp/tmpfile');
        }

        // Create temp file
        $tempFilePath = '/tmp/tmpfile/' . basename($filePath);
        $tempFile = fopen($tempFilePath, "w") or die("Error: Unable to open file.");
        $fileContents = file_get_contents($filePath);
        $tempFile = file_put_contents($tempFilePath, $fileContents);


        // Put on S3
        $s3->putObject(
            array(
                'Bucket'=>$bucketName,
                'Key' =>  $keyName,
                'SourceFile' => $tempFilePath,
                'StorageClass' => 'REDUCED_REDUNDANCY'
            )
        );
    } catch (S3Exception $e) {
        echo $e->getMessage();
    } catch (Exception $e) {
        echo $e->getMessage();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...