2014-12-30 3 views
0

Извините за заголовок, потому что я не знаю, как назвать эту проблему. Пожалуйста, рассмотрите следующий кодОбработка PHP multipart/form-data

<?php 
var_dump($_POST); 
?> 
<form name="submit_form" id="submit_form" method="POST" enctype="multipart/form-data"> 
    <input type="hidden" name="update" value="y"> 
    <input type="file" name="supplement_file" id="supplement_file" class="btn_general" /> 
    <input type="submit" /> 
</form> 

Это PHP, который просто печатает представляющую информацию информацию. Первый запуск, он отображает пустой, что имеет смысл. Однако после нажатия кнопки «Отправить» он по-прежнему отображается пустым. Но полезная нагрузка запроса уже установлена. Я вижу это через вкладку сети в консоли.

------WebKitFormBoundaryO78Y428dBFHmIDbk 
Content-Disposition: form-data; name="update" 

y 
------WebKitFormBoundaryO78Y428dBFHmIDbk 
Content-Disposition: form-data; name="supplement_file"; filename="supplement2.wmv" 
Content-Type: video/x-ms-wmv 


------WebKitFormBoundaryO78Y428dBFHmIDbk-- 

Что я ожидаю, я вижу "update"="y" после отправки этой формы.

Я использую PHP 5.3, это проблема? И тип контента странный. Это Content-Type:text/html в этом представлении. Я что-то упускаю?

UPDATE

Информация заголовка запроса

Connection:Keep-Alive 
Content-Length:369 
Content-Type:text/html 
Date:Tue, 30 Dec 2014 10:01:22 GMT 
Keep-Alive:timeout=5, max=100 
Server:Apache/2.2.17 (Win32) mod_ssl/2.2.17 OpenSSL/0.9.8o PHP/5.3.4 mod_perl/2.0.4 Perl/v5.10.1 
X-Powered-By:PHP/5.3.5 
+3

Попробуйте var_dump ($ _ ЗАПРОС); – madforstrength

+0

Вы также можете попробовать обернуть 'var_dump ($ _ POST)' in 'if ($ _ POST) {var_dump ($ _ POST);}' Итак, теперь это будет выполняться только при отправке формы. – SuperDJ

+0

. Какова рабочая функция error.it отлично для меня – Priyank

ответ

0

Да я могу видеть "update"="y". он работает отлично !!!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
    <title>Untitled Document</title> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
</head> 

<body> 
    <?php 
    if($_POST){ 
     var_dump($_POST); 
    }; 
    ?> 
    <form name="submit_form" id="submit_form" method="POST" enctype="multipart/form-data"> 
    <input type="hidden" name="update" value="y"> 
    <input type="file" name="supplement_file" id="supplement_file" class="btn_general" /> 
    <input type="submit" /> 
    </form> 
</body> 
</html> 
+0

Это не работает для меня. Я думаю, проблема с настройкой сервера. – panda

+0

предоставьте нам данные вашего сервера – Priyank

0

Pls добавляет действие в форму. Затем попробуйте.

Форма должна иметь атрибут действия в HTML4. Если он не установлен, браузер, скорее всего, будет использовать тот же метод, что и для него. Вы действительно должны установить action = "", который является вполне допустимым HTML4, следует стандартам и достигает того же точного результата.

<?php 
var_dump($_POST); 
?> 
<form action="" name="submit_form" id="submit_form" method="POST" enctype="multipart/form-data" > 
    <input type="hidden" name="update" value="y"> 
    <input type="file" name="supplement_file" id="supplement_file" class="btn_general" /> 
    <input type="submit" /> 
</form> 
2

Пожалуйста, откройте файл php.ini и поиск этих двух линий:

; Maximum size of POST data that PHP will accept. post_max_size = 8M

Увеличение post_max_size на более высокое значение.