php – 将base64图像上传到amazon s3

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 将base64图像上传到amazon s3脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我在尝试将图像上传到AWS S3时遇到了一些问题.它似乎正确上传文件,但每当我尝试下载或预览时,它都无法打开.目前,这是我正在使用的上传代码

<?PHP
require_once 'classes/amazon.PHP';
require_once 'includes/aws/aws-autoloader.PHP';
use Aws\S3\S3Client;

$putdata = file_get_contents("PHP://input");
$request = json_decode($putdata);

$image_parts = explode(";base64,",$request->image);
$image_tyPE_aux = explode("image/",$image_parts[0]);
$image_type = $image_type_aux[1];
$image_base64 = $image_parts[1];

$dateTime = new DateTime();
$fileName = $dateTime->getTimestamp() . "." . $image_type;  

$s3Client = S3Client::factory(array(
    'region' => 'eu-west-1','version' => '2006-03-01','credentials' => array(
        'key'    => Amazon::getAccessKey(),'secret' => Amazon::getSecretKey(),)
));

try {
    $result = $s3Client->putObject(array(
        'Bucket'          => Amazon::getBucket(),'Key'             => 'banners/' . $fileName,'Body'            => $image_base64,'ContentType'     => 'image/' . $image_type,'ACL'             => 'public-read'
    ));
    echo $result['ObjectURL'] . "\n";
} catch(S3Exception $e) {
    echo $e->getMessage() . "\n";
}
?>

因此,当我在上传图像文件后检查控制台时,它具有预期的大小,权限和标题,但正如我所说,每当我尝试打开文件时,它都会失败.

这可能是什么问题?提前致谢.

解决方法

这里的问题是你似乎正在上传图像的base64编码版本而不是图像的原始字节.取$image_base64并首先解码为原始字节 http://php.net/manual/en/function.base64-decode.php.我相信如果你试图在文本编辑器中打开那些“图像”,你会看到base64十六进制数据.

脚本宝典总结

以上是脚本宝典为你收集整理的php – 将base64图像上传到amazon s3全部内容,希望文章能够帮你解决php – 将base64图像上传到amazon s3所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。