在Laravel 9中的公共路径创建新文件夹不起作用

hwamh0ep  于 2022-12-14  发布在  其他
关注(0)|答案(1)|浏览(232)

我正在使用Laravel 9,我需要创建一个新文件夹,如下所示:

public function make()
    {
        $ip = \Request::ip();

        $path = public_path().'/assets/captcha/'.$ip;
        File::makeDirectory($path, $mode = 0777, true, true);
        ...
    }

但是当这个方法运行时,它不会工作,也不会根据用户的IP地址创建新的文件夹。
但是,$ip变量已正确设置。
到底出了什么问题?
我真的很感激你们的任何想法或建议...

voj3qocg

voj3qocg1#

默认情况下,你不能在public_path中创建文件夹(如果你不改变文件系统权限的话)。你得到了storage_path()帮助器,它会给予正确的文件夹来存储文件。
但是我建议使用存储外观,使用它你可以在配置好的存储设备上创建文件夹,并且在你的代码中完全跳过文件路径(那是在配置中)。

$path = 'assets/captcha/'.$ip;    
if(!Storage::exists($path))
        Storage::makeDirectory($path);

如果文件应该可以通过公共http访问进行下载,则可以将存储文件夹链接到文件系统中的公共文件夹。

相关问题