HTTP响应内容类型

时间:2013-09-15 06:44:30

标签: scala http-headers download mime-types servlet-3.0

我正在通过servlet实现文件下载功能并尝试使用Files.probeContentType但没有成功,它似乎没有选择正确的MIME类型,因此我使用默认值application/octet-stream发生。在我的测试中,该设置似乎适用于所有各种文件类型,如tar, gif, gz, mp4, xml, json,工作文件正确下载,可以使用各自的应用程序打开。

第一个问题,如果有人能告诉我我在使用probeContentType做错了什么或者更好的方法来确定mime类型,那将是最受欢迎的,这里是Scala中的几行代码

val is = new FileInputStream(file)
val mt = Files.probeContentType(file.toPath)
val mimetype = if (mt == null) "application/octet-stream" else mt

无论如何,始终将HTTP响应content-type设置为application/octet-stream是否可以?我只测试了Chrome和Firefox。

更新如果有人想知道,我最终使用MimeUtil post提供了post。到目前为止,它对我抛出的所有文件类型都很有效。这是Scala代码的片段

import eu.medsea.mimeutil.MimeUtil
val file = new File("path-to-your-file")
MimeUtil.registerMimeDetector("eu.medsea.mimeutil.detector.MagicMimeMimeDetector")
val mt = MimeUtil.getMimeTypes(file).toString

这是一个{{3}},其中包含一些MIME类型检测库的有用代码段。

0 个答案:

没有答案