поиск расширения файла по коду java

Предположим, пользователи могут загружать файлы, я хочу найти расширение загруженного файла. Даже если пользователь переименовал расширение файла, я хочу найти реальное расширение этого файла по его заголовку или байт-коду и т. д.

Пожалуйста, помогите мне с решением.

Примечание. Не только расширение с помощью substring() или getContentType(), но и реальное расширение файла, скажем, например (в Windows), это файл .doc, и пользователь переименовывает его в .jpg и загружает. . В php это возможно, но я не знаю, как это сделать в java! Но это может быть сделано. Спасибо.


person Ashok Raj    schedule 21.02.2012    source источник
comment
дубликат? stackoverflow.com/questions/5096862 /   -  person sdolgy    schedule 21.02.2012
comment
я упомянул не getContentType()! это другое   -  person Ashok Raj    schedule 21.02.2012
comment
откуда вы знаете, что такое настоящее расширение, не понимая тип контента?   -  person sdolgy    schedule 21.02.2012
comment
требование не является типом контента, оно никогда не является таковым. Предположим, пользователь редактирует расширение с .jpg на .gif, тип содержимого будет возвращать изображение/gif или изображение/jpg ??   -  person Ashok Raj    schedule 21.02.2012


Ответы (2)


Apache Commons: FileUpload — хорошее место для начала. кроме того, вы можете посмотреть ссылку, на которую я ссылался: JSP: получить тип MIME в файле Загрузить, чтобы узнать, как это сделать.

Как заявляет пользователь в своем вопросе, мысль в том, что если я переименую .png в .jpg, это обманет getContentType(), заставив его думать, что теперь это .jpg файл. Быстрый поиск в Google дал следующий результат: Получить тип mime из файла, в котором перечислены 3 очень хороших варианта:

  1. #P3# <блочная цитата> #P4#
  2. #P5# <блочная цитата> #P6#
  3. #P7# <блочная цитата> #P8#
person sdolgy    schedule 21.02.2012

Быстрый поиск выдал это сообщение: http://fredeaker.blogspot.com/2006/12/file-type-mime-detection.html

В посте перечислены несколько «волшебных» библиотек, которые могут определять тип файла на основе его содержимого.

person casablanca    schedule 21.02.2012