mkdir() 不会创建目录


mkdir() won't create directories

我正在尝试创建目录以更好地组织文件。它的前端是一个表单,用户将在其中输入标题,内容和区域(下拉菜单(。当用户提交表单时,数据将被带到名为 save 的文件中.php并进行处理。以下是保存.php文件上的代码。实际上,这样做的主要目标是生成一个html文件,然后按区域将这些html文件组织到文件夹中。我无法使 mkdir(( 工作。消息"已创建目录"始终打印出来,但没有创建实际文件夹。你认为我的代码有什么问题?我想发生的是,当用户单击"提交"按钮时,将创建具有区域名称的文件夹。请帮忙?或者有什么建议或其他方法来解决这个问题?

$ad_title = $_POST['title'];
$ad_content = $_POST['content-ads']; 
$ad_region = $_POST['region']; 
if (!is_dir("uploads/"$ad_region)) {
        // dir doesn't exist, make it
        mkdir("uploads/".$ad_region);
        echo "directory created!";
    }
    else {
        echo "directory already exist!";
    }

编辑:我不知道这是否重要,但我的保存.php文件和上传文件夹,其中上述代码保存在本地目录中

localhost/system/modules/new

当我在目录中重新定位保存.php文件和上传文件夹

localhost/system/

现在一切似乎都在工作。但我希望它在本地主机/系统/模块/新目录中工作,以便更好地组织。对此有任何帮助吗?

尝试给它绝对路径。

你也错过了is_dir中的一个点;应该!is_dir("uploads/" . $ad_region

您在检查目录是否存在时缺少连接句点

if (!is_dir("uploads/"$ad_region)) {if (!is_dir("uploads/" . $ad_region)) {

加上向mkdir(path, permission, recursive)添加权限,可以防止头痛;

通常,

当目录未在 Web 应用程序中创建时,您正在处理权限问题。

确保允许运行Web服务的用户(如果是Linux,通常是"apache"或"www-data"(在您尝试创建目录的位置创建目录。