- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
在一个网络项目中,用户上传他们的文件,但是当我在服务器上收到它们时,它们被存储为 .tmp 文件而不是它们的原始文件扩展名(这也是我的首选行为)。
但是,这会导致 Files.probeContentType()
出现问题。在本地对我来说,在我的 Linux 开发机器上,Files.probeContentType()
可以正常工作并确定正确的 mime 类型,当我将项目上传到生产服务器(amazon beanstalk)时,它不会似乎无法正确确定 mime 类型。
通过阅读javadocs,似乎 Files.probeContentType()
的实现有所不同,我认为在生产服务器上,它正在读取文件扩展名,因此无法确定内容类型。
什么是 Files.probeContentType()
的快速替代方案,它将接受 File
参数并返回类似 image/png
的字符串> 作为生成的 mime 类型?
最佳答案
看看Apache Tika .它可以很容易地确定 MIME 类型:
Tika tika = new Tika();
File file = ...
String mimeType = tika.detect(file);
这是所需的最小 maven 依赖项:
<dependency>
<groupId>org.apache.tika</groupId>
<artifactId>tika-core</artifactId>
<version>1.12</version>
</dependency>
关于java - Files.probeContentType 的替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19711956/
Java 中的探测内容类型如何工作? 一些 resources强调它基于文件扩展名和其他资源,例如 this one表明存在错误。 我创建了一个 excel 文件并使用另存为 我将其保存为 myexc
在硬盘驱动器故障需要重新安装操作系统之前,我在使用 Windows 7 的计算机上完成了基于 Java 8u45 的项目的所有开发。据我所知,一切都应该与我之前的设置非常相似,但现在我注意到在我的新安
在一个网络项目中,用户上传他们的文件,但是当我在服务器上收到它们时,它们被存储为 .tmp 文件而不是它们的原始文件扩展名(这也是我的首选行为)。 但是,这会导致 Files.probeContent
我在 mac 上使用 java se7,oracle 预览。 我的问题是“Files.probeContentType”返回空值...这是否可能是由于 se7 for mac 的早期状态?我的代码:
我在使用 Files.probeContentType(path) 方法测试文件类型的应用程序中遇到了一些奇怪的问题:在我的 Ubuntu 和 Fedora 系统上,它工作正常,但当移动到 RedHa
Java 有一个内置的内容类型检测器,但是,它自然会错过一些文件类型。 Files.probeContentType(new File(".ttf").toPath()); 看起来好像该实现允许添加更
我是一名优秀的程序员,十分优秀!