From c1d466f8384e71a52684591f3d7d95d82eaf7296 Mon Sep 17 00:00:00 2001
From: Stefan Galinski <stefan@sgalinski.de>
Date: Tue, 19 Apr 2022 16:58:52 +0200
Subject: [PATCH] [BUGFIX] Fix warnings if the external URL download isn't
 working for the cached image service

---
 Classes/Service/CachedImageService.php | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/Classes/Service/CachedImageService.php b/Classes/Service/CachedImageService.php
index 700d8e6..b45774f 100644
--- a/Classes/Service/CachedImageService.php
+++ b/Classes/Service/CachedImageService.php
@@ -119,22 +119,24 @@ class CachedImageService {
 		$imageHash = \md5($url);
 		// check if any kind of image with this hash is already in the cache-directory
 		$cachedImage = \glob($cachedImageFolderPath . $imageHash . '.*');
+		$cachedFileWebPath = '';
 		if (count($cachedImage) <= 0) {
 			// if the cache-directory has not been created yet, do so
 			GeneralUtility::mkdir_deep($cachedImageFolderPath);
 
-			// copy without file extension for now
-			\copy($url, $cachedImageFolderPath . $imageHash);
-			$imageType = \exif_imagetype($cachedImageFolderPath . $imageHash);
+			if (@\copy($url, $cachedImageFolderPath . $imageHash)) {
+				// copy without file extension for now
+				$imageType = \exif_imagetype($cachedImageFolderPath . $imageHash);
 
-			// figure out the file extension based on the image's mime-type
-			$cachedFileName = $imageHash . \image_type_to_extension($imageType);
-			$cachedFilePath = $cachedImageFolderPath . $cachedFileName;
+				// figure out the file extension based on the image's mime-type
+				$cachedFileName = $imageHash . \image_type_to_extension($imageType);
+				$cachedFilePath = $cachedImageFolderPath . $cachedFileName;
 
-			// correct name
-			\rename($cachedImageFolderPath . $imageHash, $cachedFilePath);
-			GeneralUtility::fixPermissions($cachedFilePath);
-			$cachedFileWebPath = PathUtility::getAbsoluteWebPath($cachedFilePath);
+				// correct name
+				\rename($cachedImageFolderPath . $imageHash, $cachedFilePath);
+				GeneralUtility::fixPermissions($cachedFilePath);
+				$cachedFileWebPath = PathUtility::getAbsoluteWebPath($cachedFilePath);
+			}
 		} else {
 			$cachedFileWebPath = PathUtility::getAbsoluteWebPath($cachedImage[0]);
 		}
-- 
GitLab