<form action="setari_cont.php" method="POST" enctype="multipart/form-data">
<img src="img/defaultavatar.jpg" width="70"/>
<input type="file" name="profilepic" id="profilepic"><br><br>
<input type="submit" name="uploadpic" value="Upload">
</form>
和这个
if(isset($_FILES['profilepic']))
{
if(($_FILES["profilepic"]["type"]=="image/jpeg") ||
($_FILES["profilepic"]["type"]=="image/png") ||
($_FILES["profilepic"]["type"]=="image/gif"))
{
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
$rand_dir_name = substr(str_shuffle($chars), 0, 15);
mkdir('userdata/photos/$rand_dir_name');
}
else
{
echo 'Here is the problem';
}
}
但它不会创建目录。两者都在相同的.php脚本中,所以......问题出在哪里?提前谢谢!
SOLVED!!!!!!!This form was inside another form!
答案 0 :(得分:0)
您需要将$ rand_dir_name置于引号之外或双引号中:
mkdir('userdata/photos/'.$rand_dir_name);
或
mkdir("userdata/photos/$rand_dir_name");
答案 1 :(得分:0)
而不是这样做
mkdir('userdata/photos/$rand_dir_name');
你需要做
mkdir('userdata/photos/' . $rand_dir_name);
否则会尝试创建一个名为“$ rand_dir_name”的目录,我猜这个目录无效,因为它无效
答案 2 :(得分:0)
我认为您在mkdir中的变量存在问题。它应该是:
mkdir('userdata/photos/'.$rand_dir_name);
答案 3 :(得分:0)
出于调试目的,请输入
ini_set('display_errors', 1);
高于一切。
要注意的几件事情:
mkdir( $path, 0777, true );
在您的情况下,它将是mkdir( "userdata/photos/{$rand_dir_name}", 0777, true);
双引号很重要,因为那时php可以评估里面的表达式。 {}很重要,因为这表示内部有待评估的内容。 0777是mkdir
中的权限的默认值(如果省略,则使用),true
告诉mkdir创建临时文件夹。
参考文献: