У меня проблема с некоторым PHP-кодом, и я не могу понять, почему он не работает.
Итак, чтобы сократить длинную историю, я создаю сайт социальной сети, и пользователям разрешено загружать собственное изображение профиля. Чтобы запретить другим людям просматривать все изображения, я делаю это так, чтобы пользователь загружал изображение профиля, создавая новый случайно созданный каталог. Когда я нажимаю "Загрузить", он не создает каталог. (Никакие изображения не должны входить в каталог в данный момент времени, только каталог должен быть создан, но это не так). Спасибо за помощь.
Код 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
{
}
}
Код HTML:
<p style="font-size: 20px;">Upload a Profile Picture</p><br />
<form action="" method-"POST" enctype="multipart/form-data">
<img src="./img/default_pic.png" width="70" height="70">
<input type="file" name="profilepic" /><br />
<i>Your Profile Picture must <b>not</b> violate any of the <a href="#">Terms and Conditions</a>!</i><br />
<input type="submit" name="uploadpic" value="Upload Image">
</form>
Если ваша скобка и другой код верны, чем может быть проблема для каталога разрешения, если вы находитесь на сервере Linux, и/или вложенные каталоги не были созданы
попробуй это
mkdir ("./userdata/profile_pics/$rand_dir_name", 0777 , true);
второй параметр - восьмеричное значение, которое дает ему самое широкое разрешение, а третий параметр позволяет mkdir также создавать вложенные каталоги, такие как userdata и profile_pics.
if
и ваш бодрящий путь далеко.