From 3ab514c80461929e9f7010f1dfbf69287beb6fc8 Mon Sep 17 00:00:00 2001 From: Edgard Lorraine Messias Date: Wed, 11 Nov 2020 11:01:28 -0300 Subject: [PATCH] Fixed exif data from non image path (close #343, close #745, close #764) --- src/Intervention/Image/Commands/ExifCommand.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Intervention/Image/Commands/ExifCommand.php b/src/Intervention/Image/Commands/ExifCommand.php index 7103f2fd..063df6ef 100644 --- a/src/Intervention/Image/Commands/ExifCommand.php +++ b/src/Intervention/Image/Commands/ExifCommand.php @@ -28,7 +28,17 @@ class ExifCommand extends AbstractCommand // try to read exif data from image file try { - $data = @exif_read_data($image->dirname . '/' . $image->basename); + if ($image->dirname && $image->basename) { + $stream = $image->dirname . '/' . $image->basename; + } elseif (version_compare(PHP_VERSION, '7.2.0', '>=')) { + // https://www.php.net/manual/en/function.exif-read-data.php#refsect1-function.exif-read-data-changelog + $stream = $image->stream()->detach(); + } else { + // https://bugs.php.net/bug.php?id=65187 + $stream = $image->encode('data-url')->encoded; + } + + $data = @exif_read_data($stream); if (!is_null($key) && is_array($data)) { $data = array_key_exists($key, $data) ? $data[$key] : false;