在CodeIgniter 中,當您嘗試上傳類型不受支援的檔案時,您可能會遇到錯誤訊息「您嘗試上傳的檔案類型不被允許。」出現此問題的原因是檔案副檔名與其實際MIME 類型不符。
設定上傳程式庫時,您可以使用allowed_types 設定參數。但是,當伺服器將檔案副檔名解釋為其 MIME 類型時,可能會出現此問題。
特別是,Firefox 會誤解檔案副檔名並分配不正確的 MIME 類型。例如,它可能會將 WMV 檔案的 .wmv 副檔名解釋為 video/x-ms-wmv。儘管 config/mimes.php 中的配置正確,但這會導致上傳失敗。
要解決此問題,您可以修改 Upload 庫的 _file_mime_type() 方法以輸出實際的 MIME 類型。在 199 之後新增一行:
<code class="php">$this->_file_mime_type($_FILES[$field]); var_dump($this->file_type); die();</code>
當您上傳具有錯誤識別的 MIME 類型的檔案時,腳本將終止並輸出正確的 MIME 類型。然後,您可以將此類型新增至 config/mimes.php 設定中。
請記住,瀏覽器設定或伺服器設定可能會影響上傳行為。因此,值得檢查不同瀏覽器和伺服器環境上的行為以識別潛在的變更。
以上是儘管配置正確,為什麼我的 CodeIgniter 上傳失敗並出現「不允許檔案類型」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!