我正在設計一個簡單的PHP腳本來允許上傳* .cpp源文件。作爲一項基本的安全措施,我在將它移動到永久位置之前檢查臨時文件的MIME類型。當我在終端(在Mac OS X上)運行file --mime myfile.cpp
時,它顯示爲text/x-c
。但由於某種原因,服務器將其視爲application/octet-stream
。在/etc/mime.types
中,「cpp」擴展名在text/x-c++src
之下,這使我相信這是Mac上MIME類型的問題。PHP報告不正確的MIME類型
我試過從Ubuntu的相同的過程,它工作正常(它顯示爲text/x-c++src
)。我在兩臺計算機上都使用Chrome。
這不完全是一個編程問題本身,但可能有一些我不熟悉的PHP技巧。
$temp_file=$_FILES["file"]["type"];
if(($temp_file!="text/x-c++src")||($temp_file!="text/x-c")) {
echo "<p style=\"color:red;font-style:italic\">Please upload a valid C++ file.</p>";
}
我不想使用上傳文件的擴展名,因爲這非常容易欺騙。我會檢查finfo()方法,謝謝。 – ad2476