Каким образом можно получить файл, отправленный с помощью формы с input type="file" на сервере с использованием PHP или любого другого способа?

Как можно реализовать загрузку фотографии профиля пользователя через форму регистрации так, чтобы в базе данных сохранялось название файла, а сам файл загружался на сервер? Мне известно, что фото лучше хранить на сервере, однако при моей попытке реализации, в базу данных попадает только название файла. В форме регистрации применяются стандартные методы PHP для сессий с использованием session_start(). Если у вас есть интерес или возможность, здесь ссылка на архив с кодом: [ссылка]. Благодарю за понимание!
  • 18 февраля 2024 г. 22:28
Ответы на вопрос 2
Чтобы получить файл, отправленный через форму с помощью input type="file" на сервере с использованием PHP, можно использовать следующий код:

```php
<?php
if(isset($_FILES['file'])) {
    $file_name = $_FILES['file']['name'];
    $file_tmp = $_FILES['file']['tmp_name'];
    move_uploaded_file($file_tmp, 'uploads/' . $file_name);
    echo "Файл успешно загружен на сервер";
}
?>
```

Для реализации загрузки фотографии профиля пользователя через форму регистрации так, чтобы в базе данных сохранялось название файла, а сам файл загружался на сервер, можно воспользоваться следующим кодом (пример для MySQL базы данных):

```php
<?php
session_start();

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

if(isset($_POST['submit'])) {
    $username = $_POST['username'];
    $password = $_POST['password'];
    $file_name = $_FILES['file']['name'];

    $file_tmp = $_FILES['file']['tmp_name'];
    move_uploaded_file($file_tmp, 'uploads/' . $file_name);

    $sql = "INSERT INTO users (username, password, profile_pic) VALUES ('$username', '$password', '$file_name')";
    $result = $conn->query($sql);

    if($result) {
        echo "Пользователь успешно зарегистрирован";
    } else {
        echo "Ошибка при регистрации пользователя";
    }
}

$conn->close();
?>
```

Не забудьте создать таблицу users с полями username, password и profile_pic в вашей базе данных. В форме регистрации нужно добавить input type="file" для загрузки файла.
https://www.php.net/manual/ru/function.move-upload... 
Копируете загруженный файл в нужное место на своем сервере. В базу сохраняете его название и местоположение.
Подробнее https://www.php.net/manual/ru/features.file-upload...
И еще дофига инфы https://yandex.ru/search/?text=php+как+загрузить+файл
Похожие вопросы