Парсинг многослойных данных формы

Я пытаюсь соединить ОТПРАВЛЕННУЮ форму HTML, которая имеет два поля - загрузка файла и текстовое поле. Так как форма имеет тип multipart/form-data для загрузки файла, я не могу достигнуть текстовое поле через нормальный $ PHP _POST переменная. Таким образом, как я могу достигнуть текстовое поле в форме с PHP?

Согласно требуемому, вот некоторый код, в основном взятый непосредственно от Andrew:

<html>
    <body>
        <form action="test2.php" method="post" enctype="multipart/form-data">
            Name: <input type="text" name="imageName" />
            Image: <input type="file" name="image" />
            <input type="submit" value="submit" />
        </form>
    </body>
</html>

<?php
  echo $_POST['imageName'];
  echo "<pre>";
  echo var_dump($_FILES['image']);
  echo "</pre>";
?>

Это - весь тестовый файл. Если я удаляю enctype, я могу получить ОТПРАВЛЕННЫЕ данные, но не файл, конечно. С enctype как multipart/form-data, я могу получить файл, но ничто от ОТПРАВЛЕННЫХ данных.

Вот вывод с enctype:

array(5) {
  ["name"]=>
  string(34) "testing.png"
  ["type"]=>
  string(0) ""
  ["tmp_name"]=>
  string(0) ""
  ["error"]=>
  int(1)
  ["size"]=>
  int(0)
}

Без:

testing

NULL

Тот же точный вход оба раза.

22
задан K-Gun 12 October 2019 в 18:50
поделиться

3 ответа

Загрузка файлов осуществляется через $ _ FILES . Все остальное проходит через $ _ POST (при условии, что ваша HTML-форма имеет атрибут method , установленный на "post" ).

26
ответ дан 29 November 2019 в 04:47
поделиться

$ _ POST должен работать нормально для текстового поля. Вам нужно будет использовать $ _ FILES для фактического файла. Учитывая следующий HTML:

<html>
  <body>
    <form action="self.php" method="post" enctype="multipart/form-data">
      Name: <input type="text" name="imageName" />
      Image: <input type="file" name="image" />
      <input type="submit" value="Submit" />
    </form>
  </body>
</html>

Вы можете получить доступ к полям следующим образом:

<?php
  echo $_POST['imageName'];
  echo "<pre>";
  echo var_dump($_FILES['image']);
  echo "</pre>";
?>
5
ответ дан 29 November 2019 в 04:47
поделиться

В вашем коде все в порядке; могла быть проблема с конфигурацией сервера.

<form action="" method="post" enctype="multipart/form-data"> 
 Name: <input type="text" name="imageName"> 
 Image: <input type="file" name="image"> 
 <input type="submit" value="submit"> 
</form> 

<?php var_dump($_POST, $_FILES); ?> 

Скрипт: http://sandbox.phpieceofcake.com/upload/1246558881125336.php
Источник: http://sandbox.phpieceofcake.com/ upload / 1246558881125336.phps

1
ответ дан 29 November 2019 в 04:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: