Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 06.04.2018 15:23:58

Файловое хранилище Storage Помогите разобраться

Помогите разобраться, уже бомбить начинает. (я еще ток учусь)

Сам, ручками, загружаю файлы сюда:

public/images/folder/qqq

Хочу загружать изображение на Локальный сервер (vagrant) с помощью Storage в эту же директорию.
(знаю документации в сети полно, но от них яснее не стало. форум тоже гуглил)

Опишу по порядку че делал:
1) зашел в папку с проектом. прогнал команду

php artisan storage:link

-- внутри папки public появился линк storage
2) в контроллере подрубаю

use Illuminate\Support\Facades\Storage;

// use File;
3) в методе проверяю $request

dd($request->file('file'));
UploadedFile {#888 ▼
  -test: false
  -originalName: "Снимок экрана от 2018-03-13 10-10-14.png"
  -mimeType: "image/png"
  -size: 160321
  -error: 0
  #hashName: null
  path: "/tmp"
  filename: "phpqecq7O"
  basename: "phpqecq7O"
  pathname: "/tmp/phpqecq7O"
  extension: ""
  realPath: "/tmp/phpqecq7O"
  aTime: 2018-04-06 11:53:14
  mTime: 2018-04-06 11:53:14
  cTime: 2018-04-06 11:53:14
  inode: 2235195
  size: 160321
  perms: 0100600
  owner: 1000
  group: 1000
  type: "file"
  writable: true
  readable: true
  executable: false
  file: true
  dir: false
  link: false
}

4) настройки конфига не трогал  (config/filesystems.php)

'default' => env('FILESYSTEM_DRIVER', 'local'),
    'disks' => [
        'local' => [
            'driver' => 'local',
            'root' => storage_path('app'),
        ],
        'public' => [
            'driver' => 'local',
            'root' => storage_path('app/public'),
            'url' => env('APP_URL').'/storage',
            'visibility' => 'public',
        ],
        's3' => [
            'driver' => 's3',
            'key' => env('AWS_KEY'),
            'secret' => env('AWS_SECRET'),
            'region' => env('AWS_REGION'),
            'bucket' => env('AWS_BUCKET'),
        ],
    ],

________________________
если делать

 Storage::put('images/folder/qqq', file_get_contents($request->file('file')->getRealPath())); 

, то ругается

"file_put_contents(/home/vagrant/Code/corporate.loc/storage/app/images/folder/qqq): failed to open stream: Is a directory"

напомню. мой путь вот такой:

public/images/folder/qqq

---------------------
и из документации пример не понятен: https://laravel.ru/docs/v5/filesystem

Storage::disk('local')->put('file.txt', 'Contents');

в первый параметр, так понимаю, подаем файл $request->file('file'). что такое 'Contents' вторым параметром??
---------------------

Не в сети

#2 06.04.2018 15:42:22

Re: Файловое хранилище Storage Помогите разобраться

Storage::put('images/folder/qqq/myfilename.txt', file_get_contents($request->file('file')->getRealPath()));

Ну и UploadFile можно просто через ->move сохранять.

Изменено covobo (06.04.2018 15:43:05)

Не в сети

#3 06.04.2018 15:46:42

Re: Файловое хранилище Storage Помогите разобраться

приведенный код пробовал - ничего не происходит. ошибок нет и файл в папке не появился.
П.С. мля.. еле заметил. все сохраняется в папку corporate.loc/storage/app/images .......
а я в паблике ищу)
да.. и перемещение файлов можно делать мувам https://laravel.ru/forum/viewtopic.php?id=3412

Изменено sam (06.04.2018 17:08:14)

Не в сети

Подвал раздела