Проверьте тип файла после загрузки - PullRequest
0 голосов
/ 29 декабря 2011

Я загружаю файл на сервер, используя обычный API загрузки. Теперь я хочу проверить, является ли загруженный файл действительным файлом.

У меня может быть поле для загрузки нескольких файлов на странице. Которые имеют разные требования и должны принимать разные типы файлов.

Например: -

Input file 1 should take just exe
Input file 2 should take just html
Input file 3 should take just pptx

я могу проверить расширение и проверить это одно решение, но может случиться так, что кто-то может подделать расширение и загрузить файл txt вместо exe и так

Так, как я могу проверить, был ли загружен правильный тип файла или нет, используя java

Получил Решение для того же материала, но не знаете, как это сделать? Любая помощь, пожалуйста

Ответы [ 3 ]

1 голос
/ 29 декабря 2011

После проверки расширения также необходимо проверить подпись файла. Обычно это где-то в первых нескольких байтах файла. Для хорошего списка, обратитесь к http://www.garykessler.net/library/file_sigs.html, поскольку он содержит довольно много файлов и их подписей.

Конечно, даже это не надежно, но это настолько близко, насколько вы собираетесь, не углубляясь в эвристику.

1 голос
/ 29 декабря 2011

Для API commons-fileupload вы можете получить тип контента следующим образом:

FileItem file; 
String contentType = file.getContentType();

Исходя из этого, вы можете предоставить if-else для реализации вашей логики.FileItem может быть DefaultFileItem .

0 голосов
/ 06 декабря 2012

Попробуйте загрузить каждый файл соответствующим способом. Например, попробуйте разобрать html-файл и попытайтесь загрузить pptx-файл с POI. Это не работает для exe, хотя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...