我有一个可用於上傳檔案的網頁。
現在,我需要檢查檔案型別是否正確(zip,jpg,pdf,...)。
我可以使用請求附帶的mimeType,但我不信任使用者,並且說我想確保没有人能够上傳在.jpg中重命名的.gif檔案。
我认為在這種情况下,我應该檢查魔術號碼。
這是我發現的Java庫,似乎可以實現我所需要的'提取 魔術數字的模仿型別"。
這是正確的解決方案還是您建議什麼?
UPDATE:
我發現了mime-util專案,它看起来非常好而且是最新的 ! (也许比Java Mime Magic庫好吗?)
這是實用程式專案的列表,可以帮助您提取mime型別< / p>
最新回復
- 5月前1 #
- 5月前2 #
我確定@sfussenegger發佈的庫是最好的解決方案,但是我手工編寫了以下代碼段,希望對您有所帮助。
DESCONOCIDO("desconocido", new byte[][] {}), PDF("PDF", new byte[][] { { 0x25, 0x50, 0x44, 0x46 } }), JPG("JPG", new byte[][] { { (byte) 0xff, (byte) 0xd8, (byte) 0xff, (byte) 0xe0 } }), RAR("RAR", new byte[][] { { 0x52, 0x61, 0x72, 0x21 } }), GIF("GIF", new byte[][] { { 0x47, 0x49, 0x46, 0x38 } }), PNG("PNG", new byte[][] { { (byte) 0x89, 0x50, 0x4e, 0x47 } }), ZIP("ZIP", new byte[][] { { 0x50, 0x4b } }), TIFF( "TIFF", new byte[][] { { 0x49, 0x49 }, { 0x4D, 0x4D } }), BMP( "BMP", new byte[][] { { 0x42, 0x4d } });
致谢。
PD:最好的是它没有任何依赖性。 PD2:不保證其正確性! PD3:" desconocido"代表"未知"(西班牙語)
- 5月前3 #
啟用框架是Sun的答案.而且您可能已经在應用服務器的類路徑中拥有了它
尝試Java Mime Magic庫