laravel中的公用和专用文件目录

laravel中的公用和专用文件目录,laravel,laravel-5.8,Laravel,Laravel 5.8,我想创建一个网站,用于销售使用Laravel框架的高质量照片。 我想在主屏幕上向大家展示照片模型。 但购买后可以下载原始的filezip。 是否最好将模型文件放在存储/app/public路径中,将zip文件放在存储/app/files路径中? 如果我这样做,我可以使用php artisan storage:link访问模型文件,并将其显示在主屏幕上。但是我不知道如何下载zip文件 如果这种存储文件和模型的方法是正确、安全和标准的,请告诉我如何访问zip文件。 但是如果这是错误的方法,请告诉我文

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

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

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

php artisan存储:链接

这将确保文件可以公开访问,例如example.com/public/storage/whateverfile

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

路由::获取'/storage/files/{file}','FilesController@show'->中间件'auth'; 对于下载文件,您可以使用laravel download response在show方法中进行下载

返回响应->下载$pathToFile; //或 返回响应->下载$pathToFile、$name、$headers; //或 返回响应->下载$pathToFile->删除文件结束;
因此,访问storage/file/one.zip路径中的文件的唯一方法是通过路由和控制器,没有穿越路由和控制器的用户无法通过链接和其他方法下载文件。是否正确?@MajidRostamian,是的,这是因为laravel使用中间件来处理身份验证或授权,这意味着如果用户未登录或没有权限,show方法中的代码甚至不会运行。