我正在使用这个基本脚本:
$folderPath = "../path/to/$folder/";
mkdir("$folderPath");
Run Code Online (Sandbox Code Playgroud)
我创建此目录,然后将照片上传到它.我已经这样做了4-5个月了,当我试图通过网络浏览器查看文件夹的内容时突然我开始收到'FORBIDDEN'错误
目录创建相同,照片仍然没有问题上传,但我无法访问照片
我尝试重写脚本并使用chmod更改权限,但我根本没有运气
所有旧文件夹都是使用以下命令创建的:-w-rwx rx rx
我无法重新创建这个
我已经尝试在我的脚本中添加一个chmod行:
$folderPath = "../sales/inventory/$folder/";
mkdir("$folderPath");
chmod("$folderPath", 0755);
Run Code Online (Sandbox Code Playgroud)
但是我无法重新创建相同的权限,我正在尝试理解chmod是如何工作的,但我无法弄清楚如何使这个非常基本的功能再次正常工作
Kno*_*ing 10
尝试寻找HTAccess文件,其中将提到"Options -Indexes"选项,因为这主要用于不显示Web浏览器中文件夹的内容.需要以下列方式搜索文件: -
root_folder/sales/inventory/$folder/"中,其中" $folder"在您的代码中提到.当您获得HTAccess文件中编写的"Options -Indexes"代码时,您可以从那里删除/注释该行代码,或者您也可以在所需的" $folder" 文件夹中写入另一个HTAccess文件,其中代码将是"期权指数".
同样在PHP页面中,逻辑必须如下: -
<?php
$folderPath = "../sales/inventory/$folder/";
mkdir("$folderPath");
chmod("$folderPath", 0755);
// Use of "copy()" / "move_uploaded_file()" function here, using some "$targetFile" variable.
chmod($targetFile, 0755);
?>
Run Code Online (Sandbox Code Playgroud)
当您从"$ folder"文件夹中取消链接/删除上传的文件时,这将有助于您.
希望能帮助到你.
小智 7
如果$ folder变量包含一些子目录,那么父目录可能没有被编组为正确的权限.这是我在租用的OVH Gentoo服务器上遇到的问题.
想象一下,$folder = '/store1/ally23/shelf42';所以你的最终目录结构是
../sales/inventory/store1/ally23/shelf42,并且你想要0777permisions.你做:
mkdir($folderPath, 0777, true) || chmod($folderPath, 0777);
Run Code Online (Sandbox Code Playgroud)
只有最终目录shelf42被编码为0777.使用默认权限(在我的情况下0744)创建中间目录.
PHP的chmod命令中没有递归选项,因此您必须遍历中间目录并单独chmod它们.