首頁 >後端開發 >php教程 >儘管配置正確,為什麼我的 CodeIgniter 上傳失敗並出現「不允許檔案類型」錯誤?

儘管配置正確,為什麼我的 CodeIgniter 上傳失敗並出現「不允許檔案類型」錯誤?

Patricia Arquette
Patricia Arquette原創
2024-10-30 17:05:03281瀏覽

Why Does My CodeIgniter Upload Fail with a

了解CodeIgniter 中的「檔案類型不允許」錯誤

在CodeIgniter 中,當您嘗試上傳類型不受支援的檔案時,您可能會遇到錯誤訊息「您嘗試上傳的檔案類型不被允許。」出現此問題的原因是檔案副檔名與其實際MIME 類型不符。

設定上傳庫

設定上傳程式庫時,您可以使用allowed_types 設定參數。但是,當伺服器將檔案副檔名解釋為其 MIME 類型時,可能會出現此問題。

Firefox Mimetype 誤解

特別是,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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn