Laravel 5.6 - загрузить сохраненный файл в S3

У меня есть проект 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

Как я могу загрузить фактический файл вместо сохранения пути?

Измените ->url() на ->get(), и у вас будет содержимое файла.

Ohgodwhy 02.07.2018 16:22

Это все в документации ... laravel.com/docs/5.6/filesystem#file-uploads

Loek 02.07.2018 16:23
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
1 881
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Сделать это можно так:

$contents = Storage::get('file.jpg');

Файловая система Laravel

Я пытался сделать это так: $ contents = Storage :: get ($ image-> filename); но я продолжаю получать ошибку "файл не найден"

fightstarr20 02.07.2018 16:41

поэтому неверный путь, который вы сохранили в базе данных, или имя файла отличается в папке и в базе данных

Salman Zafar 02.07.2018 16:43

Имя файла правильное, но я не понимаю, где указан путь. Не добавляет ли Storage :: get путь к хранилищу автоматически?

fightstarr20 02.07.2018 16:47

Storage :: get ($ file) принимает полный путь, а также только имя файла

Salman Zafar 02.07.2018 16:50

@ fightstarr20 можете ли вы увидеть свой файл в хранилище / app /, если да, то попробуйте жестко запрограммировать имя файла в Storage :: get ($ filenmae), а затем попытайтесь получить его содержимое.

Salman Zafar 02.07.2018 16:55

Файлы находятся в хранилище / app / uploads /

fightstarr20 02.07.2018 17:05

можете ли вы попытаться сохранить файл с помощью этого $ path = $ request-> file ('file') -> storeAs ('public / uploads', $ request-> file-> getClientOriginalName ()); а также запустите эту команду, если вы не запустили: php artisan storage: ссылка

Salman Zafar 02.07.2018 17:07

Теперь все рассортировано, мне нужно было вернуться и изменить способ хранения файлов

fightstarr20 02.07.2018 18:18

После добавления use Illuminate\Support\Facades\Storage;

Сделать это можно так:

$contents = Storage::get('file.jpg');

Файловая система Laravel

Другие вопросы по теме