Intereting Posts
Какие функции необходимы для ввода защищенных форм? PHPMailer – ошибка SMTP: не удалось подключиться к SMTP-хосту Перенаправление заголовка PHP не работает на IE 8 Аутентификация системы без сеансов – Только куки – Является ли это достаточно безопасным? PHP для подключения к Hotmail для отправки электронной почты? Symfony 2 Forms entity Тип поля Тип Сохранение вкладок в данных POST WooCommerce: добавьте пользовательскую ссылку Metabox на страницу администрирования php динамически создает меню навигации из многомерного массива как я могу определить переменную в файле .htaccess и использовать ее? session_id () не получает переменные сеанса Как преобразовать значения массива в нижний регистр в PHP? Не получать конкретный результат без брекетов Рекомендации по переводу приложения на арабский Определите ближайший гексаговый цвет к списку существующих шестнадцатеричных значений

Как загрузить изображение в AWS S3 в PHP из памяти?

Поэтому в настоящее время у меня загружена система загрузки, использующая AWS S3 для загрузки изображений.

Вот код:

//Upload image to S3 $s3 = Aws\S3\S3Client::factory(array('key' => /*mykey*/, 'secret' => /*myskey*/,)); try { $s3->putObject(array( 'Bucket' => "bucketname", 'Key' => $file_name, 'Body' => fopen(/*filelocation*/, 'r+') )); } catch(Exception $e) { //Error } 

Это изображение может быть jpeg или png, и я хочу преобразовать его в png перед загрузкой. Для этого я использую:

 //This is simplified, please don't warn about transparency, etc. $image = imagecreatetruecolor($width, $height); imagecopyresampled($image, $source, 0, 0, 0, 0, etc.); 

Таким образом, у меня есть этот объект $image в памяти.

Я хочу загрузить его на S3, не загружая его локально, а затем удаляю его локально; этот дополнительный шаг кажется бессмысленным. Но я не могу решить, как загрузить этот объект $ image напрямую.

Есть идеи, как это будет сделано? Я предположил, что fopen () создаст объект подобного типа imagecreatetruecolor (), но я пробовал передать объект $ image в него, и он не работает, тогда как если я открываю изображение локально с fopen ( ).