java - 检测用户是否更改了要上传的文件扩展名?

标签 java servlets file-upload mime-types

使用 Java servlet,是否可以检测文件的真实文件类型,而不考虑其扩展名?

场景:您只允许上传纯文本文件(.txt 和 .csv) 用户获取文件 mypicture.jpg,将其重命名为 mypicture.txt 并继续上传文件。您的 servlet 只需要文本文件并在尝试读取 jpg 时失败。

显然这是用户错误,但是有没有办法检测到它不是纯文本而不继续?

最佳答案

您可以使用内置的 URLConnection#guessContentTypeFromStream() 来做到这一点应用程序接口(interface)。然而,它可以检测的内容类型非常有限,您可以更好地使用第三方库,如 jMimeMagic .

另见:

关于java - 检测用户是否更改了要上传的文件扩展名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3587458/

相关文章:

javascript - 使用 Javascript(或 Angular)在每个部分上使用不同的内容类型组合多部分/表单数据

java - 无法将 XMLSlurper 添加到 Eclipse Groovy 项目

java - Cloud SQL 的 Hibernate 连接池提供程序

java - Java中一个数组中元素之间的差异

c# - 大多数 LOB 应用程序使用哪种技术?

spring - 如何覆盖 dispatcherServlet 中的 contextConfigLocation

java jsp返回对象的地址

java - 单例 Servlet 过滤器

ruby-on-rails - 使用回形针无法将 pdf 上传到 Rails

javascript - 使用 CSS 样式和上传按钮的功能