如何从 Laravel 8 中的存储应用程序文件夹下载文件
Posted
技术标签:
【中文标题】如何从 Laravel 8 中的存储应用程序文件夹下载文件【英文标题】:How to download file from storage app folder in Laravel 8 【发布时间】:2022-01-05 14:27:26 【问题描述】:我想从 Storage/app/public 文件夹下载一个文件。
不知何故,如果没有任何错误消息,它就无法工作。
下面是我试过的代码。
web.php
Route::get('/viewAllFile',[DownloadController::class, 'downfunc']);
Route::post('download/id',[DownloadController::class, 'download']);
下载控制器.php
class DownloadController extends Controller
public function downfunc()
$downloads = DB::table('files')->get();
return view('download.viewfile', compact('downloads'));
public function download($file_name)
//Storage::disk('local')->put('example.txt', 'Contents');
$file = Storage::disk('public')->get($file_name);
$filepath = storage_path("app/$data->file");
return \Response::download($filepath);
viewfile.blade.php
@foreach($downloads as $down)
<tr>
<td>$down -> name</td>
<td>$down -> directory</td>
<td>$down -> updated_at</td>
<td>
<a href="url('/download/'.$down->name)" download="$down-> name">
<button type="button" class="btn btn-primary">Download</button>
</a>
</td>
</tr>
@endforeach
【问题讨论】:
所有可下载的文件都在storage/app/public
目录的根目录下还是有些嵌套?
请参考***.com/q/20415444/4650866
都保存在storage/app/public/hi目录下
【参考方案1】:
首先,您必须运行以下命令:
php artisan storage:link
例如:
Route::get('/download', function ()
return Storage::download('public/file_name.png');
);
You can find documentation here
【讨论】:
以上是关于如何从 Laravel 8 中的存储应用程序文件夹下载文件的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Laravel 8 Jetstream 注册页面中的数据库中获取数据?