2011-06-14 19 views
0

我正在PHP中開發應用程序,它需要視頻文件。我正在給服務器端驗證($_FILES['file']['type']),它只接收.MP4文件。在不同的瀏覽器中同一個文件的PHP不同的文件類型

如果我從Firefox瀏覽器上傳任何MP4文件,那麼文件類型是'application/octet-stream',如果我從谷歌瀏覽器上傳相同的文件,那麼文件類型是'video/mp4'

如果我從Firefox上傳任何FLV文件,那麼文件類型也是'application/octet-stream'那麼我該如何識別該視頻的文件類型?

+0

通過擴展...或使用http://www.php.net/manual/en/function.finfo- file.php函數$ _FILES ['file'] ['tmp_name'] – Catalin 2011-06-14 06:39:37

+1

永遠不要相信瀏覽器發送的'type'。將其MIME類型的exe文件僞裝成其他內容是相當容易的。 – 2011-06-14 06:51:03

回答

3

您是否嘗試過使用文件信息庫? finfo_file()

http://www.php.net/manual/en/function.finfo-file.php

它有一個姐妹函數mime_content_type()

http://www.php.net/manual/en/function.mime-content-type.php

+0

使用該功能它應該以'video/mp4'的形式返回,但只有在上傳後纔可用。 – 2011-06-14 06:40:35

+0

哦,如果你無法訪問你的安裝庫(或它不可用),這可能是有用的:http://stackoverflow.com/questions/652002/detecting-mime-type-in​​- php – 2011-06-14 06:44:24

+0

「,但它只有在上傳後纔可用」...一旦您有權訪問$ _FILES var,該文件已在服務器上的臨時位置;) – Catalin 2011-06-14 07:17:12

相關問題