我在localserver中尝试了这个代码,如果我的目录已经有了foldername并且它不会接受要创建的相同文件夹,那么它会正常工作,但是如果我在服务器中上传了该部分。
如果目录中有带Alto和新文件夹的foldername,我尝试使用alto命名它只是为什么创建它。
<?php
$folder_type=$_POST['folder_type'];
$folder_name=$_POST['folder_name'];
$images="images";
$path="../../".$folder_type."/".$folder_name;
if (!is_dir("../../".$folder_type."/".$folder_name)) {
mkdir("../../".$folder_type."/".$folder_name);
mkdir("../../".$folder_type."/".$folder_name."/".$images);
$content = file_get_contents('../../default_code.php');
$fp = fopen($path . "/$folder_name.php","wb");
fwrite($fp,$content);
fclose($fp);
}
else
{
echo "0";
}
chmod("../../".$folder_type."/".$folder_name, 0777);
?>
答案 0 :(得分:1)
我假设您的开发环境在不区分大小写的文件系统上运行(在Windows中,如屏幕截图所示),而应用程序则部署到区分大小写的文件系统(通常在Linux上)。
这可以解释两种环境之间行为的差异。
编辑:解决方法是将所有已创建的目录小写或大写,并对相同的大小写进行检查。
答案 1 :(得分:1)
完全排除这种情况。创建目录时请使用strtolower
。这意味着使用它:
$folder_name=strtolower($_POST['folder_name']);
将来会像这样,你的所有文件夹都是小写的,不会有矛盾。
我希望它有所帮助