1

ユーザーが Word または PDF ファイルをアップロードできるようにする Java Web アプリケーションがあります。.DOCX ファイルをアップロードするときに、ファイルの種類が間違っていると 2 人のユーザーが不満を言っています。両方のファイルを取得し、自分の PC にアップロードしました。どちらも問題なく動作しました。

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] プログラムを修正した後、1人のユーザーに再度アップロードするように依頼しました。何だと思う?今度はエラーなし。気絶!

4

2 に答える 2

2

アプリケーションで、一部のブラウザーが .docx を zip (MIME タイプ application/zip または application/x-zip-compressed) として報告することがわかりました。これはおそらく、.docx ファイルが実際には zip ファイルであり、ブラウザがマジック ナンバー スキャンなどを行っていたためです。

基本的に、クライアント ソフトウェアから報告される MIME タイプは信用しないでください。拡張機能も信用しないでください。

于 2013-08-21T13:45:08.520 に答える
0

簡単な答えはノーです。ブラウザーが異なれば MIME タイプも異なります。ただし、docx では動作しませんapplication/msword。Office 2007+ docx などのファイルの正しい MIME タイプについては、次のリンクを参照してください。

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

于 2013-08-21T13:44:38.553 に答える