php 代码 mkdir() 不工作并且没有错误

php code mkdir() not working and no errors

请问我需要帮助,我正在尝试使用 mkdir 上传用户个人资料图片,但它不起作用……但是当我正常使用它时,例如,当我创建一个新的 php 页面并使用时“ mkdir("newdir") “它起作用了

    <?php
if (isset($_FILES['profilepic'])) {

   if (((@$_FILES["profilepic"]["type"]=="image/jpeg") || 
 (@$_FILES["profilepic"]["type"]=="image/png") || (@$_FILES["profilepic"]
["type"]=="image/gif"))&&(@$_FILES["profilepic"]["size"] < 1048576)) { 
//1 Megabyte 
   $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$rand_dir_name = substr(str_shuffle($chars), 0, 15);
mkdir("userdata/profile_pics/$rand_dir_name");
}
else{

}

}
?>

<p>UPLOAD YOUR PROFILE PHOTO:</p> <br />

<form action="" method="POST" enctype="multipart/formdata">

<img src="./img/default_pic.png" width="70" />

<input type="file" name="profilepic" /><br /><br />

<input type="submit" name="uploadpic" value="Upload Photo"><br />

</form>

也许你应该这样尝试(变量名和单引号)

mkdir("userdata/profile_pics/'$rand_dir_name'");

希望有用。

使用以下代码为您的代码编辑一些代码:

请注意,最好在字符串外部使用变量。您还可以将代码放在 if 语句中以检查它是否正确执行。

编辑 您还需要使用 / 启动 mkdir 调用,或者更好地使用 $_SERVER['document_root'] 启动它,这样您就知道您始终可以获得要生成的目录的绝对路径。

if(mkdir("/userdata/profile_pics/".$rand_dir_name)){
       print "this worked!";
}
else {
       print "This failed";
}

您还需要检查父目录的权限是否正确,是否允许 PHP 用户组在 /profile_pics/ 文件夹中创建目录。

您还可以检查 PHP 是否在正确的工作目录中,您可以使用 print gwtcwd();

进行检查

不是因为php,php代码写的很好问题出在htmlhtml表单enctype写错了

这个

<form action="" method="POST" enctype="multipart/formdata">

应该是

<form action="" method="POST" enctype="multipart/form-data">