簡體   English   中英

限制文件上載類型

[英]Limiting file upload type

簡單的問題。 有沒有辦法在上傳時只允許txt文件? 我環顧四周,所有我發現的是text/php ,它允許PHP。

$uploaded_type=="text/php

當您使用PHP上傳文件時,它存儲在$ _FILES數組中。 其中有一個名為“type”的鍵,其文件的mime類型為EG $_FILES['file']['type']

所以要檢查它是你做的txt文件

if($_FILES['file']['type'] == 'text/plain'){
    //Do stuff with it.
}

這里解釋得非常好。 此外,不要依賴文件擴展,這是非常不可靠的。

簡單地說:沒有辦法。 瀏覽器不一致支持文件上載字段中的類型限制器(已計划的AFAIK,甚至已集成到HTML標准中,但最好幾乎沒有實現)。 文件擴展名和mime類型信息都是用戶提供的,因此不可信任。

您實際上只能嘗試解析文件並查看它是否符合您期望的任何格式,這是唯一可靠的方法。 您需要注意的是惡意格式錯誤的文件導致的緩沖區溢出等問題。 如果你想要的只是文本文件,那可能不是什么大問題。

您可以檢查上傳文件的mime類型。 在codeIgniter中,此代碼用於上載庫:

$this->file_type = preg_replace("/^(.+?);.*$/", "\\1", $_FILES[$field]['type']);

變量$this->file_type然后用於檢查上載配置,以查看上載的文件是否是允許的類型。 您可以在CodeIgniter上載庫文件中看到完整的代碼。

您需要檢查上傳文件的文件擴展名。

有Pear HttpUpload,它支持這個。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM