Ответ 1
$s3->create_object($bucket, $file_name, array(
'fileUpload' => $resized_image,
'contentType' => $_FILES['image']['type'],
'acl' => AmazonS3::ACL_PUBLIC
));
Это сводит меня с ума. Я загружаю изображения на S3 с помощью php SDK. Всякий раз, когда я просматриваю URL-адрес изображения, браузер загружает изображение, противоположное его отображению.
Я думаю, что это как-то связано с типом контента.
// Prepare to upload the file to S3 bucket.
$s3->create_object($bucket, $file_name, array(
'contentType' => 'binary/octet-stream',
'acl' => AmazonS3::ACL_PUBLIC
));
Вы можете помочь?
спасибо
$s3->create_object($bucket, $file_name, array(
'fileUpload' => $resized_image,
'contentType' => $_FILES['image']['type'],
'acl' => AmazonS3::ACL_PUBLIC
));
В действительности ваш тип контента ошибочен. Например, для JPG должно быть изображение /jpeg. См. Этот сайт для списка: http://en.wikipedia.org/wiki/Internet_media_type
Работайте самостоятельно, казалось бы, правильно, предположив, что это тип контента:
Вам нужно установить правильный тип контента для загружаемого изображения, следующий список содержит все наиболее распространенные типы
* image/gif: GIF image
* image/jpeg: JPEG JFIF image
* image/png: Portable Network Graphics
* image/svg+xml: SVG vector image
* image/tiff: Tag Image File Format
* image/vnd.microsoft.icon: ICO image
Итак, переработайте свой пример кода для загрузки png:
// Prepare to upload the file to S3 bucket.
$s3->create_object($bucket, $file_name, array(
'contentType' => 'image/png',
'acl' => AmazonS3::ACL_PUBLIC
));
Если вы работаете с изображениями URL, используйте
'ContentType' => mime_content_type($absolutePathToImage),
вместо
$_FILES['image']['type']