我有一个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]我要求一位用户在程序修改后再次上传。你猜怎么着?这次没有错误。微弱!
答案 0 :(得分:2)
我们在应用程序中发现某些浏览器将.docx报告为zip(mimetype application / zip或application / x-zip-compressed)。这可能是因为.docx文件实际上是压缩文件,并且浏览器正在进行一些神奇的数字扫描或者其他一些。
基本上,只是不要相信客户端软件报告的mimetypes。不要相信扩展。
答案 1 :(得分:0)
简短回答是否定的,不同的浏览器没有不同的mime类型。但是,docx不适用于application/msword
。有关office 2007+ docx etc文件的正确mime类型,请参阅此链接: