我在 IIS8.5 上使用 phpUploader。我将 php 上传设置为 20mb,并将网站设置为:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="30000001" />
</requestFiltering>
</security>
</system.webServer>
</configuration>
我试图上传一个大于允许的文件,大约 50mb,而不是 php 抓取它,IIS 给了我一个错误。
这是 phpUploader.php 中的检查:
// Max size PER file in KB
$max_file_size="20000";
// Max size for all files COMBINED in KB
$max_combined_size="80000";
//Check the size of each file
} Elseif($_FILES['file']['size'][$i] > ($max_file_size*1024)) {
$error.= "<b>FAILED:</b> ".$_FILES['file']['name'][$i]." <b>REASON:</b> File to large.<br />";
我在 php.ini 中有这个设置:
upload_max_filesize = 100M
如何在 php 验证文件大小之前防止 IIS 出错?
在涉及 PHP 等应用程序框架之前,首先处理 IIS 施加的任何限制。如果 IIS 确定请求太大,它会停止请求管道并返回错误,而无需调用 PHP。
如果要处理
file too large
代码中的错误,可以尝试将 IIS 限制设置得非常高。但是如果有人发布了一个更大的文件,IIS 错误仍然会出现。