Я использую PHP 7.0.9 с IIS 8. У меня есть html-форма для загрузки изображения. Метод POST
, действие верное, а enctype - «multipart/form-data». Тем не менее, когда я отправить форму, страница зависает, как будто она пытается загрузить выбранный файл бесконечно - его вес около 30KB, а не большой сделки ...Форма Php 7 не работает с enctype = "multipart/form-data" и method = "post"
Вот моя форма:
<!DOCTYPE html>
<html>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
Select image to upload:
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="text" name="textInput" id="textInput">
<input type="submit" value="Upload Image" name="submit">
</form>
</body>
</html>
а вот upload.php:
<?php
echo "ok<br/>";
var_dump($_POST);
?>
Как есть, когда я нажимаю на «Загрузить изображение», страница висит, как если бы он был загрузки файла бесконечно.
Но если я удалить enctype
или изменить действие по get
, форма занесена и печатает:
ok
array(0) { }
$_POST
массив, очевидно, пусто, но почему это не работает с enctype="multipart/form-data"
?
FYI:
file_uploads = On
upload_max_filesize = 20M
max_file_uploads = 20
upload_tmp_dir = C:\Windows\temp
... и C: \ Windows \ Temp является записываемый для всех. Да, группа Everyone - меня это очень раздражает, и я не хочу никаких проблем.
Некоторые тесты позже ...
Если я использую:
<form action="upload.php" method="get" enctype="multipart/form-data">
Select image to upload:
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="text" name="textInput" id="textInput">
<input type="submit" value="Upload Image" name="submit">
</form>
Результат:
ok
array(3) { ["fileToUpload"]=> string(13) "imageName.png" ["textInput"]=> string(4) "blah" ["submit"]=> string(12) "Upload Image" }
Казалось бы, проблема между методом и ENCTYPE ,
EDIT
Для чего это стоит, я думаю, что это определенно проблема IIS: когда я смотрю в IIS журнал я вижу запрос для формы:
2017-01-16 13:28:19 X.X.X.X GET /testupload.html - 80 - X.X.X.X Mozilla/5.0+(Windows+NT+6.2;+WOW64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/55.0.2883.87+Safari/537.36 - 304 0 0 1140
Но ничего не написано когда я отправлю форму; поэтому я даже не знаю, получает ли IIS запрос.
Вы пробовали использовать другой браузер? Работает ли он с текстом типа ввода, только если вы опустите файл типа ввода? – Blackbam
Я не могу воспроизвести его с той же версией php, но с Apache вместо IIS. – Blaatpraat
@Blackbam Я попробовал его с Chrome 55 и Internet Explorer 10. – gobes