如何使用php解决iis错误500上传文件
我正在尝试将文件上载到基于IIS的服务器。这是我的密码:如何使用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
<?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