amazon s3 – загрузка изображений вместо отображения в браузере

Это сводит меня с ума. Я загружаю изображения на 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']