現在我正在嘗試編寫一個腳本,它只接受某些音頻文件上傳到服務器。
但是,某些MIME類型被返回爲空。
下面是一些代碼片段:
PHP:
$allowedExt=array('audio/mp4a-latm');
if(isset($_POST))
{
print_r($_FILES);
//ToDo: Limit by File Size
if(in_array($_FILES["fileUpload"]["type"],$allowedExt)){
echo "file type found";
}
else
echo "wrong file type";
}
HTML:
<form action="php/FileUpload.php" method="POST" enctype="multipart/form-data">
Choose a file: <input name="fileUpload" type="file" /><br />
<input type="submit" value="Upload" />
</form>
上述結果是:
Array ([fileUpload] => Array ([name] => 02 Helix Nebula.m4a [type] => [tmp_name] => <removed for space...>))
wrong file type
從我的理解,類型應該返回文件的MIME類型。在這種情況下,用於.m4a文件的'audio/mp4a-latm'。
如果php正確返回null爲.m4a文件,那麼確保我實際處理音頻文件的最佳方法是什麼?有什麼比解析文件擴展名更明確嗎? (確保有人沒有改變說文本文檔的擴展名)
我不知道爲什麼它不會在你的情況下返回正確的文件類型(可能缺少一些簡單的東西 - 它應該),但如果。m4a的mime類型被定義爲服務器上的音頻(通常你甚至可以在共享主機環境中自己定義這個),那麼通過擴展進行檢查並沒有太大的危險。不過,我同意實際解決問題會更好。 – Ynhockey 2012-03-11 09:28:47