Apache Tika
を使用すると、最も一般的なファイルのmime-typeファイルを取得できます。ファイル拡張子は(ファイル名ではなく...)抽出できます。これは、TikaがMIMEタイプを検出できる場合に機能します。その後、mime-typeを必要なファイル拡張子に変換することができます。いくつかの共通のコードについては私のコードを参照してください。 TikaとMIMEタイプについて読むhere.
private void findFileExtension(String base64) throws IOException{
byte[] base64Bytes = DataTypeConverter.parseBase64Binary(base64)
Tika tika = new Tika();
String fileType = tika.detect(base64Bytes);
String fileExtension = changeFileType(fileType);
File tempFile = File.createTempFile("MyFile", "." +fileExtension);
}
private String changeFileType(String fileType) {
boolean cahnged = false;
if (fileType.subSequence(0, 5).equals("image")) {
fileType = fileType.substring(6, fileType.length());
}
if (fileType.contains("PDF")) {
fileType = "pdf";
cahnged = true;
}
if (fileType.contains("msword")) {
fileType = "doc";
cahnged = true;
}
if (fileType.contains("wordprocessingml")) {
fileType = "docx";
cahnged = true;
}
if (fileType.contains("excel")) {
fileType = "xls";
cahnged = true;
}
if (cahnged){
log.debug("Changed fileType to: ["+fileType+"]");
}
return fileType;
}
私たちはもっと情報が必要だと思います。これはあなたが話している 'multipart/form-data'エンコーディングのHTMLフォームPOSTですか?もしそうなら、あなたはそれを読むためにどのようなテクノロジーをサーバー側で使用していますか?質問を編集して明確にしてください。 – Andreas
私は編集した質問をしました。 – user2281439
ファイルを受信できるようにしたい場合は、x-www-form-urlencodedを使用することはできません。このためにmultipart/form-dataが一般的に使用されています –