PHP代码mkdir()不工作,没有错误

时间:2015-08-30 12:53:22

标签: php mkdir

我需要帮助我试图使用mkdir进行用户配置文件pic上传并且它无法工作......但是当我正常使用它时,例如当我创建一个新的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>

3 个答案:

答案 0 :(得分:1)

使用以下代码编辑代码的代码:

请注意,最好在字符串外部使用变量。您还可以将代码放在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();

进行检查

答案 1 :(得分:1)

它不是因为php,php代码编写得很好,问题出在html中,html表单的enctype写错了

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

应该是

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

答案 2 :(得分:-1)

可能你应该这样尝试(变量名和一个倒置的逗号)

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

我希望它能奏效。