Я запускаю небольшой PHP-проект для школы и пытаюсь настроить форму, в которой пользователь может загрузить фотографию профиля.
Я пытался работать с W3Schools, но не смог 'заставить его работать с моим кодом.Вот ссылка на эту страницу: https://www.w3schools.com/php/php_file_upload.asp
Сначала я объявляю некоторые переменные:
$target_dir = "profilepic/";
$target_file = $target_dir . basename($_FILES["image_to_upload"]["name"]);
И затем я перемещаю загруженный файл в правильный каталог.После регистрации это проверяется с помощью этого:
move_uploaded_file($_FILES["image_to_upload"]["tmp_name"], $target_file);
Я уже установил параметры в форме, поэтому пользователь может выбирать только файлы изображений:
<form action='index.php' method='post' enctype='multipart/form-data'>
<input type= 'text' name='leerlingid' placeholder='Username' required>
<input type= 'text' name='mail' placeholder='Email Address' required>
<input type= 'password' name='wachtwoord' placeholder='Password' required>
<input type= 'password' name='wachtwoordcheck' placeholder='Password confirmation' required>
<input type= 'text' name='voornaam' placeholder='First name' required>
<input type= 'text' name='achternaam' placeholder='Last name' required>
<select name='sekse'>
<option value='Man'>Man</option>
<option value='Vrouw'>Vrouw</option>
</select>
Profile picture:
<INPUT id='image_to_upload' NAME=image_to_upload' TYPE='file' accept='image/x-png,image/gif,image/jpeg' required>
<input type='submit' name='reg' value='Register'>
</form>
wachtwoord - парольleerlingid это имя пользователяvoornaam это имяахтернаам это фамилияsekse is sex
Проект на голландском языке, поэтому извините за голландские имена.
Форма работает правильно, и я получаю 0 ошибок, но после регистрации пользователя файл не был загружен.Я использую школьный сервер, но если я в порядке, $ target_dir должен начинаться с того места, где находится form.php.
Я не знаю, если file_uploads = On в INI-файле, но ямогу загрузить мои файлы из FileZilla, чтобы я думал, что это так.(У меня нет доступа к этому файлу, поэтому у меня нет возможности проверить или изменить его).
Если кто-то может указать мне, почему он не работает, это было бы очень полезно.
Редактировать:
Я также попробовал этот код:
$upload = move_uploaded_file( $_FILES["image_to_upload"]["tmp_name"], $target_file );
if( $upload ) {
header("Location: good.php");
} else {
header("Location: error.php");
//echo "Error:" . $_FILES["image_to_upload"]["error"];
}
Но мой код пропускает это полностью.Он по-прежнему не загружает изображение и просто переходит на подтвержденную страницу регистрации.
РЕДАКТИРОВАТЬ: я исправил свою проблему.Посмотри на мой другой ответ.Он содержит мои ошибки.