Сначала проверьте ваш $ path Я думаю, вы не должны использовать функцию storage_path (). Потому что Voyager хранит информацию о файле в формате json. Я думаю, вы должны попробовать это.
Контроллер
class HomeController extends Controller
{
public function index()
{
$posts = Post::all();
$files = Download::all();
return view('user.index', compact('posts', 'files'));
}
public function show($id)
{
$files = Download::where('id', $id)->firstOrFail();
//$path = storage_path($files->file);
$new_file = json_decode($files->file)[0];
$new_file_path = Voyager::image($new_file->download_link);
$new_file_name = $new_file->original_name; //if you need original file name
$new_file_size = round((Storage::disk(config('voyager.storage.disk'))->size($new_file->download_link)) / (1024*1024) ,4) ; //if you need file size in MB
return response($new_file_path);
}
}
Просмотр
@foreach($files as $file)
<a class="primary-btn" href="{{route('downloadFile',$file->id)}}" download>Download Resume </a>
@endforeach
Но я думаю, вы должны нормализуйте код, используя отношения в Скачать Модель
Так что вам не нужно маршрутизировать функцию show
Тогда это может выглядеть следующим образом
Контроллер
class HomeController extends Controller
{
public function index()
{
$posts = Post::all();
$files = Download::all();
return view('user.index', compact('posts', 'files'));
}
}
Просмотр
<?php
foreach($files as $file){
$new_file = json_decode($file->file)[0];
$new_file_path = Voyager::image($new_file->download_link);
$new_file_name = $new_file->original_name; //if you need original file name
$new_file_size = round((Storage::disk(config('voyager.storage.disk'))->size($new_file->download_link)) / (1024*1024) ,4) ; //if you need file size in MB
?>
<a class="primary-btn" href="{{$new_file_path}}" download>Download Resume </a>
<?php
}
?>
Надеюсь, это поможет вам.