2016-01-14 108 views
0

任何人都可以告訴我,我怎樣才能允許所有的視頻/ Yii2開始的MIME類型。Yii文件驗證,以允許視頻/ *

目前我的驗證都喜歡

[['attachmentfile'], 'file','skipOnEmpty'=>FALSE, 'extensions' => 'mp4,3gp,mov,m4v,mpeg,mpg', 'mimeTypes' => 'video/mp4,video/quicktime,video/x-quicktime,video/x-m4v,video/mov,video/3gpp,video/mpeg','on'=> 'create'], 

現在我希望讓每一個視頻,因爲我在一些視頻上傳得到錯誤。那麼我怎樣才能允許所有以視頻開頭的MIME類型/ *

另外如果有人能告訴我這是一個好方法嗎?

真正的問題- 我有一個視頻文件是mp4和MIME類型是視頻/ mp4。當我上傳它。我的模型爲mime類型生成錯誤。對於我的其他視頻來說,它一直在運行良好。我試圖檢查在線鏈接上的MIME類型,它也顯示MP4。所以我不確定這個視頻有什麼問題。我現在使用ffmpeg轉換,所以我想允許每個視頻文件上傳,並將其轉換爲mp4。只有這個視頻正在產生問題。因此,如果任何人都可以告訴我怎麼才能讓所有的視頻/ * MIME類型

回答

1

您可以禁用mime類型與設置checkExtensionByMimeTypefalse

Yii2 Api: checkExtensionByMimeType

除此之外,檢查你需要添加Mime類型你的文件正在返回,所以檢查它返回true。

Yii2 Api: basefilehelper::getMimeType

它也可能是您的問題,FILEINFO不返回正確的媒體類型。我曾經在Windows上使用過這個版本,但它在Linux上是正確的。

Stackoverflow: Fileinfo returns different mimetype on php version

可用Mime類型房源可以在這裏找到:

Stackoverflow: PHP/Mime Types - List of mime types publically available

+0

感謝我查Yii2 API:basefilehelper :: getMimeType。它真的幫助了我。它顯示了mime類型 - **「application/octet-stream」**。所以它是一個二進制文件。對於未來的用戶只是更新你可以通過'echo $ pp = \ yii \ helpers \ FileHelper :: getMimeType($ model-> attachmentfile-> tempName)獲得mime類型'這裏attachmentfile是我的表單輸入。所以我不允許這個文件 – Prashant