我在 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
如何防止 IIS 在 php 验证文件大小之前出错?
答案1
在涉及 PHP 等应用程序框架之前,将首先处理 IIS 施加的任何限制。如果 IIS 认为请求太大,它会停止请求管道并返回错误,而不会调用 PHP。
如果您想file too large
在代码中处理错误,可以尝试将 IIS 限制设置得非常高。但如果有人发布了更大的文件,IIS 错误仍然会出现。