У меня есть проект Laravel 5.6, в котором изображения хранятся с использованием фасада Storage.
Я пытаюсь взять сохраненное мной изображение и переместить его в хранилище S3 вот так ...
$contents = Storage::disk('local')->url($image->filename);
$storagePath = Storage::disk('s3')->put("uploads", $contents, 'public');
Это загружает файл в корзину S3 под названием 'uploads', который содержит путь к файлу, подобному этому ...
/storage/myimage.jpg
Как я могу загрузить фактический файл вместо сохранения пути?
Это все в документации ... laravel.com/docs/5.6/filesystem#file-uploads






Сделать это можно так:
$contents = Storage::get('file.jpg');
Я пытался сделать это так: $ contents = Storage :: get ($ image-> filename); но я продолжаю получать ошибку "файл не найден"
поэтому неверный путь, который вы сохранили в базе данных, или имя файла отличается в папке и в базе данных
Имя файла правильное, но я не понимаю, где указан путь. Не добавляет ли Storage :: get путь к хранилищу автоматически?
Storage :: get ($ file) принимает полный путь, а также только имя файла
@ fightstarr20 можете ли вы увидеть свой файл в хранилище / app /, если да, то попробуйте жестко запрограммировать имя файла в Storage :: get ($ filenmae), а затем попытайтесь получить его содержимое.
Файлы находятся в хранилище / app / uploads /
можете ли вы попытаться сохранить файл с помощью этого $ path = $ request-> file ('file') -> storeAs ('public / uploads', $ request-> file-> getClientOriginalName ()); а также запустите эту команду, если вы не запустили: php artisan storage: ссылка
Теперь все рассортировано, мне нужно было вернуться и изменить способ хранения файлов
После добавления use Illuminate\Support\Facades\Storage;
Сделать это можно так:
$contents = Storage::get('file.jpg');
Измените
->url()на->get(), и у вас будет содержимое файла.