在laravel中使用php在父根中创建目录

时间:2015-01-31 13:53:14

标签: php laravel

我的网站位于/var/www/mysite目录.i使用laravel并希望在/uploads目录中创建目录.so / uploads除了/ var。

/var/www/mysite
/uploads

我为0777设置/uploads权限,但发生了拒绝许可。 我尝试使用此代码

<?php mkdir('/uploads', 0777 , true) ; ?>

3 个答案:

答案 0 :(得分:0)

您的网络用户(www-data,apache或其中任何一个)受操作系统限制使用/var/www。您无法读取,写入,删除/var/www以外的任何文件。所以这不是一个laravel问题。

答案 1 :(得分:0)

创建给定路径的所有目录(文件夹)的函数。无需编写代码创建给定路径的每个目录(文件夹)。它将创建所有目录(文件夹)。

喜欢:如果你想创建像
的目录结构 organizations / 1 / users / 1 /

所以你只需要像目录路径一样调用这个函数 $ directories_path =&#39; organizations / 1 / users / 1 /&#39;;
createUploadDirectories($ directories_path);

/*
* Method Name : createUploadDirectories
* Parameter : null
* Task : Loading view for create directries for upload
*/

if ( ! function_exists('createUploadDirectories')){
    function createUploadDirectories($upload_path=null){
        if($upload_path==null) return false;
        $upload_directories = explode('/',$upload_path);
        $createDirectory = array();
        foreach ($upload_directories as $upload_directory){
            $createDirectory[] = $upload_directory;
            $createDirectoryPath = implode('/',$createDirectory);
            if(!is_dir($createDirectoryPath)){
                $old = umask(0); 
                mkdir($createDirectoryPath,0777);// Create the folde if not exist and give permission
                umask($old); 
            }               
        }
        return true;
    }
}

答案 2 :(得分:0)

这样做:

Use File;
File::makeDirectory(base_path() . '/path/to/directory', 0775, true);

如果它不存在,这将尝试创建/ path。然后/ path / to,如果它不存在。最后是/ path / to /目录,如果它不存在的话。如果成功创建了所有创建的目录,则返回true。

如果要将目录放在公共路径中;使用方法:

File::makeDirectory(public_path() . '/path/to/directory', 0775, true);

来源:Laravel Recipes