簡體   English   中英

Java:從文件中檢查內容類型和擴展名(mime)的最佳方法是什么?

[英]Java: Which is the best way to check a content-type and extension (mime) from a file?

驗證我通過端點上傳的文件的最高效方式。

它應該掃描字節,而不僅僅是比較文件擴展名。

我知道這個鏈接對我有幫助,但我不知道這些鏈接是否已被棄用:

https://www.rgagnon.com/javadetails/java-0487.html

提前致謝!

沒有一種 100% 萬無一失的方法來驗證上傳到端點的文件所包含的內容。 這是因為文件在一天結束時只是字節,它可能包含也可能不包含有關文件元數據的信息(例如,惡意用戶、損壞的文件等)您能做的最好的事情就是嘗試猜測類型的文件。

您可以使用Apache Tika 檢測庫作為項目的依賴項。 鏈接中有有關如何執行此操作的詳細文檔。

您還可以利用 HTTP 請求中的Content-Type header 作為檢測文件類型的替代方法。 至少這是我要做的,讓任何 API 消費者 select 正確的內容類型,並嘗試使用給定的內容類型(如果支持的話)解析文件。 如果發生異常,則很可能是:

  1. 您正在使用的解析方法中存在錯誤或
  2. Content-Type 與文件的實際內容不匹配。

當然,您可以通過使用特定於內容的注釋(例如@Consumes(MediaType.APPLICATION_XML)進一步限制端點接受的內容,但我們無法就所提供的信息提供更多幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM