我的網站上我想讓人們上傳吉他專業文件。顯然沒有特定的MIME類型(我測試過,它給了我'application/octet-stream')。有沒有辦法檢查和100%確定文件是吉他專業文件,而不是別的? 感謝吉他pro文件的MIME類型?
0
A
回答
1
閱讀從上傳的文件的第一個字節。例如,這是我在創建類似功能時用於檢查上傳文件的方式。
$f = fopen($_FILES['tmp_name'], "rb");
fseek($f, 1);
$in = fgets($f, 19);
fclose($f);
if ($in == 'FICHIER GUITAR PRO') { ... }
因此,從1日到19日讀取字符會給我字符串'FICHIER GUITAR PRO'。這種方法適用於我的gp4文件。我也用來檢查文件擴展名。 但是請記住,您不能執行真正的檢查來過濾惡意上傳,因爲僞造第一個字節以及擴展非常容易。所以應該總是對所有上傳的文件進行一些額外的調整。
0
您應該分析該文件,看看版本字符串是正確的:
http://dguitar.sourceforge.net/GP4format.html
+0
謝謝,我對php很新,我該怎麼做?這只是爲了gp4文件,對於其他版本有沒有相同的內容? – romainberger 2012-01-11 19:45:24
相關問題
- 1. MIME類型的文件
- 2. Dropbox文件的MIME類型?
- 3. UIWebView和文件MIME類型
- 4. .alx文件MIME類型
- 5. MIME類型爲.txt文件?
- 6. 文件Mime類型檢查
- 7. 閱讀吉他臨文件
- 8. 吉他英雄類型節拍器
- 9. 獲取MIME類型的文件
- 10. .htaccess文件的MIME類型是什麼?
- 11. css.map文件的正確MIME類型
- 12. 無法確定文件的MIME類型
- 13. 適當的MIME媒體類型文件
- 14. 什麼是wsdl文件的mime類型?
- 15. Mime請求發佈文件的類型
- 16. 確定excel文件的MIME類型
- 17. 更改非php文件的MIME類型?
- 18. mime類型的Nginx緩存文件
- 19. PHP文件的自定義MIME類型
- 20. 如何檢查文件的MIME類型
- 21. 什麼是.py文件的MIME類型?
- 22. 確定文件的MIME類型
- 23. MIME類型的下載文件
- 24. 更改文件的MIME類型
- 25. Rails 3.2中的'Mime'和'MIME'(文件上傳類型)是什麼?
- 26. 什麼是.NET的各種文件類型的mime類型?
- 27. 用mime類型保存文件在c#
- 28. SSH VS文件關聯/ MIME類型
- 29. PHP獲取遠程文件MIME類型
- 30. 獲取文件MIME類型時出錯
確實每個文件都有一個特定的標題可以檢查?用十六進制編輯器檢查其中的幾個。 – jValdron 2012-01-11 19:44:10
閱讀標題字符串,並測試它是否匹配(正則表達式在這裏最好)。如果沒有達成一致的MIME類型,則無法對其進行測試。 (還有那些上傳不可靠)。如果你想用一些有用的東西來爲你的下載提供服務,請設置'audio/x-guitar-pro'類型的東西,而不是無用的'application/*' – mario 2012-01-11 19:44:40