MS Word文档在不同的浏览器中具有不同的mime类型

时间:2013-08-21 13:37:03

标签: java mime

我有一个Java Web应用程序,允许用户上传Word或PDF文件。我有2个用户在上传.DOCX文件时抱怨错误的文件类型。我收到了两个文件并上传到我自己的电脑上。两者都很顺利。

我使用MultipartRequest.getContentType()来获取文件类型。然后使用以下内容检查

if(!(myFileType.equals("application/pdf") || myFileType.equals("application/msword") || myFileType.equals("application/vnd.openxmlformats-officedocument.wordprocessingml.document"))){
                errMsg = "Wrong file type. Only PDF and MS Word are accepted";          
}

在我看来,这是客户端PC的一个问题。浏览器?防毒软件?有没有人有线索?

[已添加]我在日志文件中发现某些PDF文件的类型也有错误。如果文件类型错误,我需要记录mime类型。

[已添加2]我要求一位用户在程序修改后再次上传。你猜怎么着?这次没有错误。微弱!

2 个答案:

答案 0 :(得分:2)

我们在应用程序中发现某些浏览器将.docx报告为zip(mimetype application / zip或application / x-zip-compressed)。这可能是因为.docx文件实际上是压缩文件,并且浏览器正在进行一些神奇的数字扫描或者其他一些。

基本上,只是不要相信客户端软件报告的mimetypes。不要相信扩展。

答案 1 :(得分:0)

简短回答是否定的,不同的浏览器没有不同的mime类型。但是,docx不适用于application/msword。有关office 2007+ docx etc文件的正确mime类型,请参阅此链接:

http://www.kattare.com/docs/faq_view/822/how-do-i-add-microsoft-office-2007-support-mime-types-to-tomcat.html