使用 Java servlet,是否可以检测文件的真实文件类型,而不考虑其扩展名?
场景:您只允许上传纯文本文件(.txt 和 .csv) 用户获取文件 mypicture.jpg,将其重命名为 mypicture.txt 并继续上传文件。您的 servlet 只需要文本文件并在尝试读取 jpg 时失败。
显然这是用户错误,但是有没有办法检测到它不是纯文本而不继续?
最佳答案
您可以使用内置的 URLConnection#guessContentTypeFromStream()
来做到这一点应用程序接口(interface)。然而,它可以检测的内容类型非常有限,您可以更好地使用第三方库,如 jMimeMagic .
另见:
关于java - 检测用户是否更改了要上传的文件扩展名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3587458/