laravel中公共和私有文件的目录

问题描述 投票:0回答:1

我想创建一个网站,以使用Laravel框架销售高质量的照片。我想向所有人显示主屏幕上的照片模型。但是原始文件(zip)可以在购买后下载。最好将模型文件放置在Storage/app/public路径中并将zip文件放置在Storage/app/files路径中?如果这样做,我可以使用php artisan storage:link访问样机文件并将其显示在主屏幕上。但我不知道如何下载zip文件。

如果这种存储文件和模型的方法是正确,安全和标准的,请告诉我如何访问zip文件。但是,如果这是错误的方法,请告诉我放置文件和模型的正确位置

laravel laravel-5.8
1个回答
0
投票

如果它对所有人公开,那么将其公开是没有问题的,因此,如果您要使用本地驱动程序并且希望使文件在存储文件夹中可访问,那么您将运行如下所示的artisan命令

php artisan storage:link

这将确保文件可以作为example.com/public/storage/whateverfile公开访问。

但是,对于购买图像的人,您需要使用身份验证或授权来处理它,例如。如果您只希望经过身份验证的用户访问文件,则可以将文件放在storage / myViewFile中,以确保该文件夹中的文件不可公开访问。然后,使用带有身份验证中间件的控制器或带有中间件的路由,可以使文件可访问。

Route::get('/storage/files/{file}', 'FilesController@show')->middleware('auth');

并且对于下载文件,您可以使用laravel下载响应在show方法中完成

return response()->download($pathToFile);
//or
return response()->download($pathToFile, $name, $headers);
//or
return response()->download($pathToFile)->deleteFileAfterSend();
© www.soinside.com 2019 - 2024. All rights reserved.