Форма загрузки файла не загружается - PullRequest
0 голосов
/ 06 февраля 2019

Я запускаю небольшой 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"];
                }

Но мой код пропускает это полностью.Он по-прежнему не загружает изображение и просто переходит на подтвержденную страницу регистрации.

РЕДАКТИРОВАТЬ: я исправил свою проблему.Посмотри на мой другой ответ.Он содержит мои ошибки.

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Я исправил проблему с помощью @ 04FS.Я ошибочно изменил «name» на «image_to_upload» в переменной $ target_file после того, как изменил его обратно на «name» и добавил недостающий «к HTML-коду, который работал, и успешно загрузил картинку.

0 голосов
/ 06 февраля 2019

Проверено ли, что папка, которая будет получать файлы, имеет разрешения на запись?

Измените код следующим образом:

$upload = move_uploaded_file( $_FILES["image_to_upload"]["tmp_name"], $target_file );

if( $upload ) {
  echo "Success!";
} else {
  echo "Error:" . $_FILES["image_to_upload"]["error"];
}

Это вернет все ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...