1
Javaでバックエンドサービスを利用してファイルをアップロードしていますが、不要なファイルタイプがアップロードされているようです。ファイルのコンテンツタイプが実際のコンテンツタイプであることを確認する方法
など。:私はfoo.jpgというファイルがあり、foo.pdf
に名前を変更した場合、それは.Howをアップロードします、私は以下foo.pdf
の実際の内容は、私はあなたがpache Tika library.を使用することができます
for (Part part : request.getParts()) {
if (part.getName().startsWith("file")) {
String filename = part.getHeader("content-disposition");
filename = filename.replaceFirst("(?i)^.*filename=\"([^\"]+)\".*$", "$1");
String fileType = part.getContentType();
DocumentUpload documentUpload = new DocumentUpload();
documentUpload.setFilename(filename);
documentUpload.setFileType(fileType);
documentUpload.setPayload(part.getInputStream());
response = documentService.save(documentUpload, uriInfo);
break;
}
}
:
また、あなたのようなファイルの実際の拡張子を得ることができますか? – Henry
httpリクエストからファイルタイプを取得すると、ブラウザを信頼することになります。より多くの制御が必要な場合は、ファイルを一時的に保存してから、その内容をコンテンツごとに識別してみてください。ここには、https://stackoverflow.com/questions/9738597/how-to-reliably-detect-file-typesなど、いくつかの関連する質問があります –