Я использую mimeutil для проверки mimetype файла.И только позволяя файлы CSV и JSON.Но получаю этот mime-тип для jime-файла "application / x-ipynb + json", который нигде не найден.Любая помощь будет полезна для получения точного mime-типа файла, если он также переименован в exe-файл в json, что не должно быть разрешено по соображениям безопасности.См. Ниже код для справки:
public static String verifyExtension(MultipartFile File){
String mimeType = null;
MimeUtil.registerMimeDetector("eu.medsea.mimeutil.detector.MagicMimeMimeDetector");
MimeUtil.registerMimeDetector("eu.medsea.mimeutil.detector.ExtensionMimeDetector");
//MimeUtil.registerMimeDetector("eu.medsea.mimeutil.detector.OpendesktopMimeDetector");
MimeUtil.registerMimeDetector(System.getProperty("os.name").startsWith(
"Windows") ? "eu.medsea.mimeutil.detector.WindowsRegistryMimeDetector"
: "eu.medsea.mimeutil.detector.OpendesktopMimeDetector");
Collection<?> mimeTypes = null;
try {
mimeTypes = MimeUtil.getMimeTypes(File.getBytes());
if(mimeTypes.equals("application/vnd.ms-excel") || mimeTypes.equals("application/json")
|| mimeTypes.equals("application/octet-stream"))
{
System.out.println("File typ is csv or json");
mimeType = "success";
}else{
mimeType = "fail";
}
} catch (MimeException e1) {
System.out.println(e1.getMessage());
mimeType = "fail";
} catch (IOException e1) {
System.out.println(e1.getMessage());
mimeType = "fail";
}
}