我需要帮助我试图使用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>
答案 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'");
我希望它能奏效。