2011-01-05 138 views
0

我想通過PHP代碼上傳.3gp視頻文件到服務器。我用'echo'視頻類型的文件檢查了MIME類型的3gp視頻文件,它給出了application/octet-streamPHP:上傳3gp視頻文件

我加入了以下檢查其限制在只有少數的視頻格式文件,如下圖所示:

if($_video_type != 'video/x-ms-wmv' && $_video_type != 'application/octet-stream' && $_video_type != 'video/avi' && $_video_type != 'video/mpeg'){ 
    $_error_videotitle = 'Only WMV, MP4, MPEG, FLV, 3GP videos are allowed'; 
    $is_errors = true; 
} 

但它不是上傳3GP文件,但它仍然給錯誤:(​​

請幫幫忙,謝謝!

+0

那麼,會發生什麼? '$ _video_type'包含什麼? – 2011-01-05 11:31:48

+0

還應該注意的是,這些頭文件是由客戶端(瀏覽器)設置的,所以我不一定會依賴它們的一致性。 – 2011-01-05 11:33:02

+0

@middaparka那麼我該怎麼做,你建議什麼? – Prashant 2011-01-05 13:44:24

回答

2

你有沒有複製粘貼在這裏你的代碼嗎?如果是這樣,那麼請注意,你到底有一個額外的空格。

'application/octet-stream ' 
+0

您是否編輯過該問題?第一次當我看到時,有一個額外的空間,現在它已經消失了!檢查你的原始代碼,看看是否有任何額外的空間 – 2011-01-05 11:51:01

+0

是的,這是我想的問題。它的工作現在! – Prashant 2011-01-05 13:49:59

1

這不是一個很好的檢查。

根據MIME類型(assumably)由PHP文件中給出的信息是不好的,因爲在所有它實際上並不檢查內容這麼多,還是沒有在所有...

MIME類型通常是通過擴展檢查,並且只有少數基本擴展支持...

任何定義爲「application/octet-stream」的格式基本上都是PHP /其他任何格式的UNKNOWN格式。大多數瀏覽器只會下載這些類型的文件。

因此,對於實際的類型和工作MIME檢測,我會建議先檢查擴展名,然後再編譯一個應包含在該類文件中的編解碼器。如果標題不匹配,則該文件無效......另外 - 對於標題僅搜索「3gp格式」的例子 - 很容易在Google上找到大多數編解碼器的格式。如果你找不到它,請檢查以下有用頁面:Multimedia Wiki