diff --git a/app/Classes/AttachmentsManager.php b/app/Classes/AttachmentsManager.php index fe8f85f..f1d52ed 100644 --- a/app/Classes/AttachmentsManager.php +++ b/app/Classes/AttachmentsManager.php @@ -34,14 +34,14 @@ class AttachmentsManager */ const Videos = 'videos'; + private string $attachmentsDir = 'attachments'; + private string $targetForFiles; private string $metadataFilePath; private MetadataManager $manager; - private string $attachmentsDir = 'attachments'; - private FilesystemAdapter $disk; private bool $isLoaded = false; diff --git a/app/Classes/Traits/Repairs/RepairsImages.php b/app/Classes/Traits/Repairs/RepairsImages.php index a94d810..feffaf2 100644 --- a/app/Classes/Traits/Repairs/RepairsImages.php +++ b/app/Classes/Traits/Repairs/RepairsImages.php @@ -2,9 +2,11 @@ namespace App\Classes\Traits\Repairs; +use App\Classes\AttachmentsManager; use Carbon\Carbon; use Illuminate\Support\Str; use Intervention\Image\Laravel\Facades\Image; +use League\Flysystem\StorageAttributes; /** * Trait for AttachmentsManager @@ -18,6 +20,33 @@ private function repairImages() { $this->load(); + $files = $this->disk->listContents( + sprintf( + '%s/%s/%s', + $this->bundle->getDataDir(), + $this->attachmentsDir, + AttachmentsManager::Images + ), + false + ) + ->filter(fn (StorageAttributes $attributes) => $attributes->isFile()) + ->map(fn (StorageAttributes $attributes) => $attributes->path()) + ->toArray(); + + foreach ($files as $file) { + $content = $this->disk->get($file); + $filename = sprintf('%s/%s', AttachmentsManager::Images, pathinfo($file, PATHINFO_BASENAME)); + + $data = [ + 'contents' => $content, + 'filename' => $filename, + ]; + + $this->disk->delete($file); + + $this->add($data); + } + foreach ($this->manager->get('files', []) as $ref => $data) { $this->repairKnownImage($ref, $data); }