Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP7表单没有';t使用enctype=";“多部分/表单数据”;方法=”;邮政「;_Php_Html_File Upload_Iis 8 - Fatal编程技术网

PHP7表单没有';t使用enctype=";“多部分/表单数据”;方法=”;邮政「;

PHP7表单没有';t使用enctype=";“多部分/表单数据”;方法=”;邮政「;,php,html,file-upload,iis-8,Php,Html,File Upload,Iis 8,我正在使用PHP7.0.9和IIS8。我有一个html表单上传图像。方法为POST,操作正确,enctype为“多部分/表单数据”。然而,当我提交表单时,页面挂起,好像它在无休止地上传所选的文件——它的重量约为30kb,没什么大不了的 这是我的表格: <!DOCTYPE html> <html> <body> <form action="upload.php" method="post" enctype="multipart/form-data">

我正在使用PHP7.0.9和IIS8。我有一个html表单上传图像。方法为
POST
,操作正确,enctype为“多部分/表单数据”。然而,当我提交表单时,页面挂起,好像它在无休止地上传所选的文件——它的重量约为30kb,没什么大不了的

这是我的表格:

<!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>
$\u POST
数组显然是空的,但是为什么它不能与
enctype=“multipart/form data”
一起使用呢

供参考

file_uploads = On
upload_max_filesize = 20M
max_file_uploads = 20
upload_tmp_dir = C:\Windows\temp
…并且C:\Windows\temp对每个人都是可写的。是的,小组里的每个人——我真的很生气,我不想有任何权利问题

稍后进行一些测试…

如果我使用:

<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>
这似乎是方法和类型之间的问题

编辑

值得一提的是,我认为这肯定是一个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是否正在接收请求。

“我无法用相同的php版本复制它,而是用Apache而不是IIS。”


查看您的IIS防火墙。

使用$\u文件(用于文件)而不是$\u POST

最后,罪犯被发现了。我完全不知道为什么,但一旦我在web.config中删除了插件的所有痕迹,通过PHP上传又能工作了。

你尝试过使用不同的浏览器吗?只有在输入类型文件中使用时,它才能与输入类型文本一起工作吗?我不能用相同的php版本复制它,但用Apache而不是IIS。@Blackam我用Chrome 55和Internet Explorer 10尝试了它。实际发生了什么事-浏览器只是冻结了吗?您是否已检查上载目录的权限?也许文件无法移动到那里(如果表单提交只包含文本?@Blaatpraat代码再简单不过了;我很确定问题来自于一些IIS的错误配置…$\u帖子无论如何都不应该是空的,他说他尝试了如果你想回复评论,就发表评论。此外,IIS中没有内置防火墙。@ArthurSPITZNAGEL-如果您没有足够的声誉发表评论,那么就不要发表评论,继续前进。不要发表评论作为回答。
<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" }
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