我有一个PHP脚本从亚马逊S3中提取一个名为test.php
的图像文件
如果我像这样编写html <img src="test.php">
图像显示正常。
然而,当我尝试使用get请求并设置图像的SRC时,它并没有正确显示。一旦这个工作,我最终想要使用post来传递params。在检查已填充元数据的src
时,如同标题(“内容类型:图像”)尚未设置。
$.get( "test.php",function( data ) {
$('#image1').attr('src', data);
});
我的test.php脚本:
require '../vendor/autoload.php';
use Aws\S3\S3Client;
$region = 'us-west-2';
$bucket = 'mybucket';
$key = 'mykey';
$secret = 'mysecret';
$s3Client = new S3Client([
'version' => 'latest',
'region' => $region,
'credentials' => [
'key' => $key,
'secret' => $secret,
],
]);
$result = $s3Client->getObject(array(
'Bucket' => $bucket,
'Key' => 'monkey1.jpg'
));
header("Content-type: image");
// Print the body of the result by indexing into the result object.
echo $result['Body'];
//echo '<img src="'.$result['Body'].'">'
答案 0 :(得分:1)
获取对象URL的时间并将其加载到页面
$result = $s3->get_object_url($bucket, 'monkey1.jpg', '1 minute');
从这里你可以将图像加载到页面!
echo '<img src="'.$result.'">
答案 1 :(得分:1)
这对我有用。
PHP脚本
$s3Client = new S3Client([
'version' => 'latest',
'region' => $region,
'credentials' => [
'key' => $key,
'secret' => $secret,
],
]);
$s3Client->registerStreamWrapper();
if (file_exists('s3://'.$bucket.'/'.$id.'/'.$filepath)) {
//echo 'It exists!';
$result = $s3Client->getObject(array(
'Bucket' => $bucket,
//'Key' => 'monkey1.jpg'
'Key' => $id.'/'.$filepath
));
header("Content-type: image/*");
// Print the body of the result by indexing into the result object.
echo base64_encode($result['Body']);
}
JS
$('#image').attr('src', 'data:image/*;base64,'+data);