【发布时间】:2018-05-21 10:38:21
【问题描述】:
我正在尝试使用 PHP 处理后将图像上传到 AWS。当我尝试上传已经在我的服务器上的文件夹中的图像时,图像上传没有问题。然而,将相同的脚本添加到处理上传图像的脚本中(它可以在本地保存图像,创建裁剪版本并将它们的链接上传到本地数据库),调整它的大小并且在读取 exif 数据后正确旋转我只上传空文件(正确命名)看起来不像 na 图像(从 AWS 下载它,我收到图像损坏的错误消息)并且在检查后它通常只有 76b 左右。是什么赋予了?这是否意味着脚本需要一些时间来处理调整大小/旋转信息,因此它上传了一半准备好的图像?我没有收到任何错误消息或警告。
我的本地文件上传脚本:
try{
$result = $s3->putObject([
'Bucket' => $config['s3']['bucket'],
'Key' => 'uploads/test.jpg',
'Body' => WWW_ROOT.'/penguin/xcropped/test.jpg',
'ACL' => 'public-read',
]);
} catch (S3Exception $e) {
echo $e->getMessage() . "\n";
}
$image_path = $result['ObjectURL'];
我在调整大小和裁剪脚本中的脚本:
require_once('inc/aws_connect.inc.php');
try{
$result = $s3->putObject([
'Bucket' => $config['s3']['bucket'],
'Key' => 'uploads/test2.jpg',
'Body' => WWW_ROOT.$thumb_path,
'ACL' => 'public-read',
]);
} catch (S3Exception $e) {
echo $e->getMessage() . "\n";
}
$aws_result = $result['ObjectURL'];
echo $aws_result;
有谁知道为什么会发生这种情况以及可能是什么问题。图像大小约为 1.7MB。这可能是个问题吗?
【问题讨论】:
-
S3 识别出什么样的
mime-type?也许在裁剪后你会丢失这些信息 -
它确实识别图像/jpg,并且我确实测试了我专门通过它的地方,我认为这可能与它可以直接从 $_FILES["files "]["tmp_name"],但不能轻易地从这里提到的服务器:stackoverflow.com/questions/34251296/…
-
仔细检查您上传的文件内容是否正确。此外,从 S3 下载生成的文件并使用文本编辑器或二进制编辑器打开它。如您所说,如果它只有 76 个字节,那么这些字节是什么?他们是否会为您提供有关您的代码做错了什么的任何线索。
标签: php image amazon-web-services file-upload