听起来好像您在本地开发一个
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容器的默认映射。
但是,您需要记住,多部分内容类型的值完全由客户端控制,并且客户端提供的文件扩展名不一定需要表示 实际的
文件内容。例如,客户端可以只编辑文件扩展名。在业务逻辑中使用此信息时要小心。



