PHP. Я хочу разрешить пользователю добавлять файл в форму из любой папки

Вот моя форма PHP. Я хочу разрешить пользователю добавлять файл в форму из любой папки

Он получает URL-адрес изображения и сохраняет его в базе данных. Но он может отображать только файлы, сохраненные в папке «загрузки», поэтому я хочу разрешить пользователю добавлять файл из любого места на ПК. Помогите, пожалуйста Может быть, я могу сделать что-то в store.php?

Создать.php

<form style = "width: 25em; text-align: center; align-items: center;" action = "store.php" method = "POST">
     
  <div class = "mb-2 form-group">
    <label for = "exampleInputEmail1" class = "mb-2">Name</label>
    <input type = "text" name = "name" class = "form-control" id = "exampleInputEmail1" aria-describedby = "emailHelp" placeholder = "Name">
   
  </div>
  <div class = "mb-2 form-group">
    <label for = "exampleInputPassword1" class = "mb-2">Surname</label>
    <input type = "text" name = "surname" class = "form-control" id = "exampleInputPassword1" placeholder = "Surname">
  </div>

 <div class = "mb-2 form-group">
    <label for = "inputPatronym" class = "mb-2">Patronym:</label>
    <input type = "text" name = "patronym" class = "form-control"placeholder = "Patronym">
  </div>

                         

  <div class = "mb-2 form-group">
    <label for = "inputPatronym" class = "mb-2">Biography:</label>
    <input type = "text" name = "description" class = "form-control"placeholder = "Biography">
  </div>


<div class = "mb-3">
  <label for = "formFile" class = "form-label">Image</label>
  <input class = "form-control" name = "userfile" type = "file" id = "formFile" accept = ".img,.png,.jpeg,.jpg,.bmp">
</div>

<div class = "mb-4 form-group">
    

  <button type = "submit" class = "btn btn-success" >Save</button>


  </div>
     <a class = "btn btn-primary btn-sm ml-3" href = "/postati.php" role = "button">Return</a>
</form>
</body>
</html>

Хранить .php

<?php 
    require_once __DIR__ . "/database/pdo.php";

    $Name = $_POST['name'];
    $Surname = $_POST['surname'];
    $Patronym = $_POST['patronym'];
    $Description = $_POST['description'];
    $userfile = $_POST['userfile'];
    
   
    $sql = "INSERT INTO `peoples` (`Name`, `Surname`, `Patronym`, `Description`, `userfile`) VALUES (:name, :surname, :patronym, :description, :userfile)";

    $params = [
        "name" => $Name,
        "surname" => $Surname,
        "patronym" => $Patronym,
        "description" => $Description,
        "userfile" => $userfile,
    ];

    $prepare = $pdo->prepare($sql);
    $prepare->execute($params);

    $pdo->lastInsertId();
    $lastInsertId=$pdo->lastInsertId();


header("Location: /postati.php")
    
?>

Вид


<div class = "image text-center">
  <img src = "uploads/<?=$people['userfile']?>" width = "250px" height = "350px" class = "center">
</div>

Я попытался переместить файл с помощью move_uploaded_file, но тогда другие переменные не сохраняются.

Просто измените «uploads/» в атрибуте src вашего изображения и вместо этого укажите на нужную папку — но, похоже, вы не закончили процесс загрузки и перемещения файла.

Luckyfella 02.04.2022 14:42
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
1
43
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В вашей форме отсутствует декларация enctype = "multipart/form-data". Вам это нужно, если вы хотите форму загрузки файла.

<form enctype = "multipart/form-data" action = "store.php" method = "POST">

Если я использую enctype, я получаю сообщение об ошибке: столбец «userfile» не может быть нулевым

Ixeel 02.04.2022 15:23

в вашем почтовом скрипте, var_dump($_POST); exit; чтобы увидеть, действительно ли что-то было загружено, затем используйте move_uploaded_file

delboy1978uk 02.04.2022 15:27

Загруженные файлы доступны в $_FILES, а не $_POST

brombeer 02.04.2022 15:57

Другие вопросы по теме