JSP:在文件上载时获取MIME类型
我正在上传文件,我想从上传的文件中获取Mime类型。
我试图使用 ,但是当我打电话时:
String contentType = req.getContentType();
它将返回:
多部分/表单数据;边界= --------------------------- 310662768914663
如何获得正确的值?
提前致谢
回答:
听起来好像您在本地开发一个multipart/form-data
解析器。我不建议这样做。而是使用像Apache Commons
FileUpload这样的体面的工具。对于上载的文件,它提供了一个FileItem#getContentType()
提取客户端指定的内容类型(如果有)的功能。
String contentType = item.getContentType();
如果返回null
(只是因为客户端未指定),则可以利用ServletContext#getMimeType()
基于文件名的好处。
String filename = FilenameUtils.getName(item.getName());String contentType = getServletContext().getMimeType(filename);
这将根据<mime-mapping>
servlet容器默认值web.xml
(例如Tomcat,在中出现/conf/web.xml
)中的条目web.xml
以及您的Web应用程序(如果有)的条目进行解析,这些内容可以扩展/覆盖servlet容器的默认映射。
但是,您需要记住,多部分内容类型的值完全由客户端控制,并且客户端提供的文件扩展名不一定需要表示 实际的
文件内容。例如,客户端可以只编辑文件扩展名。在业务逻辑中使用此信息时要小心。
以上是 JSP:在文件上载时获取MIME类型 的全部内容, 来源链接: utcz.com/qa/404830.html