Php

php中如何克服IIS消息超出請求內容長度

  • March 23, 2015

我在 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 錯誤仍然會出現。

引用自:https://serverfault.com/questions/677438