Vic*_*tor 6 java jsp servlets file-upload mime-types
我正在上传文件,我想从上传的文件中获取Mime类型.
我试图使用request.getContentType(),但是当我调用时:
String contentType = req.getContentType();
Run Code Online (Sandbox Code Playgroud)
它将返回:
多部分/格式的数据; 边界= --------------------------- 310662768914663
我怎样才能得到正确的价值?
提前致谢
Bal*_*usC 22
听起来好像你正在养成一个multipart/form-data解析器.我不建议那样做.而是使用像Apache Commons FileUpload这样的体面的.对于上载的文件,它提供了一个FileItem#getContentType()提取客户端指定的内容类型(如果有).
String contentType = item.getContentType();
Run Code Online (Sandbox Code Playgroud)
如果它返回null(仅仅因为客户端没有指定它),那么您可以ServletContext#getMimeType()根据文件名获益.
String filename = FilenameUtils.getName(item.getName());
String contentType = getServletContext().getMimeType(filename);
Run Code Online (Sandbox Code Playgroud)
这将基于<mime-mapping>servletcontainer的默认条目web.xml(例如Tomcat,它存在的情况下/conf/web.xml)以及web.xmlwebapp的条目(如果有的话)来解决,它可以扩展/覆盖servletcontainer的默认映射.
但是,您需要记住,多部分内容类型的值完全由客户端控制,并且客户端提供的文件扩展名不一定需要表示实际的文件内容.例如,客户端可以只编辑文件扩展名.在业务逻辑中使用此信息时要小心.
| 归档时间: |
|
| 查看次数: |
27961 次 |
| 最近记录: |