如何克服IIS消息超出php请求内容长度

如何克服IIS消息超出php请求内容长度

我在 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 错误仍然会出现。

相关内容