抱歉,这听起来很基础。
我遇到了一个场景,当用户访问公用文件夹中的某些文件时,我需要添加某些检查。
使用默认设置,您可以通过在浏览器中键入URL来直接访问公共目录中的特定文件。抱歉,这具有误导性。
您可以通过以下方式访问图像:
localhost/img/banner.jpg
但是我无法抓住它:
Route::get('/img/banner.jpg', function(){
//checks goes here
});
应该怎么做?
答案 0 :(得分:1)
您应该为投放图片(文件)创建控制器,并在需要控制时禁止直接访问。例如:
Route::get('/file/{name}', function ($name) {
// Your check and return file with correct response headers
}
或者是为此创建控制器的最佳方法。
https://laravel.com/docs/5.6/filesystem。查看laravel文档,了解如何管理多个文件存储。
答案 1 :(得分:0)
我只是发现了另一种不用文件系统的方法。
在公用文件夹内的.htaccess中,添加以下内容:
RewriteCond \banner.jpg$ !-d
RewriteRule ^ index.php [L]
哪个可以让laravel处理路线,然后我就可以使用它了:
Route::get('/img/banner.jpg', function(){
//checks goes here
});