Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.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
如何使用php解决iis错误500上传文件_Php_File_Post - Fatal编程技术网

如何使用php解决iis错误500上传文件

如何使用php解决iis错误500上传文件,php,file,post,Php,File,Post,我正在尝试将文件上载到基于IIS的服务器。这是我的密码: <?php error_reporting(E_ALL); ini_set('display_errors', '1'); //ini_set('error_log','/httpdocs/error_log'); echo "upload_max_filesize: " . ini_get ("upload_max_filesize"). "<br>"; echo "post_max_size: " . ini_get

我正在尝试将文件上载到基于IIS的服务器。这是我的密码:

<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
//ini_set('error_log','/httpdocs/error_log');
echo "upload_max_filesize: " . ini_get ("upload_max_filesize"). "<br>";
echo "post_max_size: " . ini_get ("post_max_size"). "<br>";
echo "memory_limit: " . ini_get ("memory_limit"). "<br>";
echo "max_file_uploads: " . ini_get ("max_file_uploads"). "<br>";
echo "max_execution_time: " . ini_get ("max_execution_time"). "<br>";
echo "max_input_time: " . ini_get ("max_input_time"). "<br>";
echo "file_uploads: " . ini_get ("file_uploads"). "<br>";
echo "default_socket_timeout: " . ini_get ("default_socket_timeout"). "<br>";
echo "<br>";
if ($_FILES["file"]["error"] > 0)
  {
  echo "Error: " . $_FILES["file"]["error"] . "<br>";
  }
else
  {
  echo "Upload: " . $_FILES["file"]["name"] . "<br>";
  echo "Type: " . $_FILES["file"]["type"] . "<br>";
  echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
  echo "Stored in: " . $_FILES["file"]["tmp_name"];
  }
?>
<html>
<body>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>

</body>
</html>

我远程访问了服务器并对其进行了测试。响应为:

PHP警告:POST内容长度9202605字节超出限制 第0行中未知的8388608字节数


如何解决此问题?

据我回忆,这不是php的直接问题,而是IIS的问题。 您可以尝试将其添加到web.config文件中,并将其添加到php项目web服务器根目录中

<system.webServer>
    <security>
        <requestFiltering>
           <requestLimits maxAllowedContentLength="2147483648" />
        </requestFiltering>
    </security>
</system.webServer>

尽管我在cPanel中更改了PHP设置,而且每当我使用
ini\u get()
时,它都会给我在cPanel中的设置,但它不起作用

我通过更改php.ini文件本身而不是cPanel的设置解决了这个问题(如果您可以访问
php.ini
文件)。

问题: 当将Windows Server 2008和IIS作为web服务器运行时,某些php文件会导致“HTTP 500-内部服务器错误”

修复方法: 我们发现,简单的php通知(即变量未定义)通过使用FastCGI协议发送到stderr,并导致IIS FastCGI模块请求失败并显示HTTP 500错误。禁用FastCGI日志将阻止PHP通过stderr发送错误信息,并为客户端生成500个响应代码

要解决此问题,请确保在php.ini文件中将以下设置设置为0:

fastcgi.logging=0
有关IIS上的FastCGI和PHP的更多信息,请参见:


来源:

如果您在代理服务器(通常在办公室局域网中)后面运行它,这只是一个想法,它可能会阻止文件上载超过特定大小。否,我从外部网络尝试过。您应该将post大小限制为8 m,这是默认限制,或inipost_的最大大小增加为:128m。是否确认文件上载错误与文件大小有关。您应该转储$\u文件,并根据此处列出的代码检查错误代码,您还可以确认上述代码段对于您的IIS版本是正确的
fastcgi.logging=0