我想创建一个网站,以使用Laravel框架销售高质量的照片。我想向所有人显示主屏幕上的照片模型。但是原始文件(zip)可以在购买后下载。最好将模型文件放置在Storage/app/public
路径中并将zip文件放置在Storage/app/files
路径中?如果这样做,我可以使用php artisan storage:link
访问样机文件并将其显示在主屏幕上。但我不知道如何下载zip文件。
如果这种存储文件和模型的方法是正确,安全和标准的,请告诉我如何访问zip文件。但是,如果这是错误的方法,请告诉我放置文件和模型的正确位置
如果它对所有人公开,那么将其公开是没有问题的,因此,如果您要使用本地驱动程序并且希望使文件在存储文件夹中可访问,那么您将运行如下所示的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();