我有一个Laravel 5项目,我在其中以中Blob格式上传数据库中的文件。
但是在数据库中上传文件需要一些额外的时间来执行。
在数据库中上传文件是一种安全的方法,可以保护文件免受抓取工具或某些机器人的攻击。</ p>
我尝试将文件上传到Public文件夹。但抓取工具可以打开这些文件。
有没有办法在文件系统中上传文件?
因此Crawlers无法打开这些文件。
我希望这些文件安全
答案 0 :(得分:1)
您可以将它们上传到公共范围之外。例如,storage/
文件夹是个好地方。此外,您可以使用file system manager抓取它们。看看:
$image = \Storage::get('file.jpg');
正确的laravel安装只允许通过Web浏览器访问public/
的内容。如果storage/
或resources/
等其他目录也是公开的,那么您的安装确实不正确。
说,一旦你上传storage/
文件夹中的文件,除了使用\Storage外观之外,没有人可以访问它们。当您调用示例\Storage::get('file.jpg');
时,它会返回一个位流,您可以将它们分配到临时文件夹中,然后将其显示在Web侧。请求完成后,图像将再次从公共域中消失。
答案 1 :(得分:0)
无需更改目录,这可以通过两种方式实现
LazyOne Answer using .htaccess
和
我建议同时实施.htaccess和robots.txt,因为一些廉价的抓取工具会忽略robots.txt,但是他们无法忽略.htaccess
答案 2 :(得分:0)