限制POST请求,最大65KB图像

时间:2015-07-03 08:32:51

标签: php html image post local

场合

我正在尝试通过POST请求将图像加载到php脚本中。

问题

仅当图像小于65.151和65.686字节之间的大小时,后置操作才有效。 (我还没弄清楚它接受的字节的确切限制是什么,我只知道65.151字节可以工作,但是65.686字节,以上都没有。)

症状

当我尝试上传超出上述限制的图片时,网页会挂起。当我在浏览器中监视网络时,它显示具有(挂起)状态的POST请求。请求正文包含带有图像字段的表单。缺少响应标头。

当我上传不超过限制的图像时,它会显示正确的状态和响应标题,并打印出包含正确大小的图像的数组等。

php报告没有错误。

环境

我在Windows 7笔记本电脑上运行一切。 我有一个Windows php 5.6.8引擎,我单独安装。 我正在使用Phpstorm来开发和运行应用程序(它使用上面描述的php引擎)。 我正在使用chrome和IE进行测试和排除故障。

设置

我在php.ini中设置了以下设置:

  • 的post_max_size

  • 的upload_max_filesize

  • memory_limit的

当前设置:

  • post_max_size =“2048M”

  • upload_max_filesize =“2048M”

  • memory_limit = 128M

代码

我尝试了很多不同的方法,但目前我正在使用以下代码:

的测试文件-upload.html

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<form action="uploadImage.php" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">
</form>
</body>
</html>

uploadImage.php

<?php
print_r($_FILES);
?>

目录结构

  • controller(dir)

    - &GT; test-file-upload.html(文件)

    - &GT; uploadImage.php(file)

有人可以解释一下为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

更新2015/07/07

我决定采取不同的方法导致绕过这个问题: 首先,我尝试使用不同的开发工具来运行脚本。 我使用Netbeans和Visual studio,但他们使用了与php风暴相同的php引擎安装。它在VS和netbeans上都无法启动网页,但这是因为集成的网络服务器没有正确配置。我不想浪费更多时间隔离问题,所以我在另一台笔记本电脑上安装了webmatrix,以获得全新的开发环境。 Webmatrix将该项目检测为一个php项目并安装了一个新的php引擎(5.5个东西)。通过使用webmatrix自身捆绑的iis express webserver,我能够启动脚本并且65KB +限制消失了!

因此,毕竟我可以得出结论,代码不是问题,而是开发环境。我不知道导致问题的是什么,它可能是集成在导致问题的phpstorm的网络服务器,或者是php引擎。如果有人作为一个想法我可以测试它找到一个propper解决方案。与此同时,我对webmatrix很满意。

更新2015/07/10

使用Webmatrix及其内置的IIS网络服务器,一切仍然正常。但我还是想弄清楚phpstorm的65KB +限制背后的问题。经过一些研究,我了解到Phpstorm使用PHP解释器的内置Web服务器,它将问题指向了这个问题。然后我遇到了一个stackoverflow post,它描述了我遇到的同样问题。他们的上传脚本也可以在其他网络服务器上正常运行,但不能在php内置网络服务器上运行。所以我几乎可以肯定,导致因素是PHP内置网络服务器。

如果有人知道此问题的解决方法,请在此处发布。我将在另一个帖子上发布解决方案的链接。