Laravel 5.6 Storage :: файл загрузки не найден - PullRequest
0 голосов
/ 24 мая 2018

Я использую Laravel 5.6, конфигурация filesystems.php по умолчанию.

Когда файл загружен, в моей БД есть запись со столбцом пути, где пути записываются как - posts / p4NbvgcxHFcT10TwbS2UUJrajifPcqpN3i7iSyyk.png

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

 $path = $file->store('posts', 'public');

Этот путь является записывающим устройством к БД, если я хочу показать, например, изображение, я могу получить к нему доступ:

{{ asset('/storage/'.$file->path) }}

Но при попытке принудительной загрузки возникает исключение - FileNotFoundException Файл не найден по пути:

Метод загрузки файла:

  public function downloadFile($id){
    $file = File::find($id);

    //return Storage::download(storage_path()."/app/public/".$file->path, $file->original_name);
    //also tried like this
    return Storage::download(asset('storage/'.$file->path), $file->original_name);
}

Приложение работает в ОС Windows

Ответы [ 3 ]

0 голосов
/ 29 мая 2018

Решение было: return Storage::disk('public')->download($file->path);

0 голосов
/ 29 мая 2018

Если вы используете asset(), вы будете вызывать файл для выбранного каталога.Если вы можете вызвать файл в папке хранилища, используйте Storage::class фасад

0 голосов
/ 24 мая 2018

попробуйте это:

return Storage::download(storage_path('app/public/'.$file->path), $file->original_name);

...