Как получить размеры изображения в AWS S3, к которому я обращаюсь с фасадом хранилища в Laravel? - PullRequest
0 голосов
/ 19 июня 2019

У меня есть несколько изображений, хранящихся в AWS S3, и я использую фасад хранилища в Laravel для их отображения на веб-странице.

В некоторых случаях я хочу получить размеры некоторых изображений и сохранить их в БД.

Я думал об использовании функции getimagesize в PHP, но изображения не являются общедоступными, и к ним можно получить доступ только через фасад Storage.

Как я могу получить размеры этих изображений? Спасибо.

Редактировать : Я должен упомянуть, что вся эта обработка изображения выполняется для переноса БД, поэтому использование веб-интерфейса, такого как JS, для получения размеров изображения нецелесообразно.

1 Ответ

1 голос
/ 19 июня 2019

Я нашел решение, которое, кажется, работает.По сути, я получаю двоичный файл с фасадом хранилища, затем использую функции imagecreatefromstring, imagesx и imagesy, чтобы получить ширину и высоту изображения.

Вот пример:

$contents = Storage::get($storageFilePath);
$im = imagecreatefromstring($contents);
$width = imagesx($im) ?? null;
$height = imagesy($im) ?? null;
...