【问题标题】:PHP Content Files inside folder return error 403文件夹内的 PHP 内容文件返回错误 403
【发布时间】:2018-12-23 10:26:06
【问题描述】:

每次新用户注册时,都会创建一个以用户名命名的文件夹,这个文件夹里面有更多的文件夹:第一个是图片,第二个是视频。 我想允许用户观看其他用户的视频,但是当我包含视频时,它显示错误 403,一开始我有 755 的 mkdir 我将其更改为 777 但仍然收到错误 403。这是功能:

function createFolder($name){
    if (!is_dir($name)){
        if (mkdir('Src/Usuarios/'.$name,777,true)){
            if (mkdir('Src/Usuarios/'.$name.'/img',777)){
                if (mkdir('Src/Usuarios/'.$name.'/videos',777)){
                    return true;

                }
            }
        }
    }
}

而且我不想让用户访问任何用户的文件夹,甚至是他们自己的文件夹。只是可以观看视频或图片

如果需要,您可以查看整个代码,但在 Branch->Test 上,而不是在 master 上: GitHub

【问题讨论】:

  • 您是否检查过您正在创建子文件夹的文件夹的权限。即src文件夹的父文件夹应该有可执行权限
  • 我创建了文件夹(右键->新建文件夹)我认为它有所有权限,但是我该如何检查呢?
  • 在 linux/ubuntu 上,您可以检查文件夹的属性将在选项卡中显示权限.. 或者在进入该目录后尝试在 cmd 中执行 ls -al
  • 我使用的是 windows,所以我使用了 "Get-Acl" n powershell,它说我有 FullControl。

标签: php permissions mkdir


【解决方案1】:

试试这个,希望对你有帮助。

var_dump(createFolder('test'));
function createFolder($name){
if (!is_dir($name)){
    if (mkdir('Src/Usuarios/'.$name,0777,true)){
        if (mkdir('Src/Usuarios/'.$name.'/img',0777)){
            if (mkdir('Src/Usuarios/'.$name.'/videos',0777)){
                return true;

            }else{
                $error = error_get_last();
                return $error['message'];
            }
        }else{
            $error = error_get_last();
            return $error['message'];
        }
    }else{ 
        $error = error_get_last();
        return $error['message'];
    }
}else{
    return 'not a directory';
}
}

die;

只需确保您对保存此函数文件 php 页面的目录具有权限

【讨论】:

  • 这会在 mkdir 不起作用的情况下返回错误。但它确实如此,因为它会创建文件夹,并且当用户上传视频时,视频会保存在文件夹中。
  • 您遇到了什么错误..仅供参考,您可以根据需要省略错误返回行
猜你喜欢
  • 2018-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-03
  • 2013-03-02
  • 2016-03-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多