現在、jQuery-File-Uploadを使用しています。日本語または中国語のファイル名でいくつかのファイルをアップロードする場合がありますが、ファイル名は、ブラウザのデバッグモードでは「お疲れ様Des.txt」または「測定试文档.txt」ですが、バックエンド(Java)であることがわかります。 、それらは「ã�Šç–²ã‚Œæ§˜ã�§ã�™.txt」および「æµ ‹è¯•æ–‡æ¡£.txt」になります。formAcceptCharsetをUTF-8
に設定しようとしましたが、機能しません。
質問:
MultipartFormDataを解析するときにJava側で正しいファイル名を取得するにはどうすればよいですか?
前もって感謝します。
ところで、以下は私のデータです
-----------------------------25382434931419
Content-Disposition: form-data; name="file"; filename="�疲れ様��.txt"
Content-Type: text/plain
....
Javaコードを追加する
実際、私は現在Java側では何もしていません。
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
public String upload(InMultiPart inMP) {
while (inMP.hasNext()) {
InPart part = inMP.next();
MultivaluedMap<String, String> headers = part.getHeaders();
String fileName = null;
if (!headers.containsKey("Content-Disposition")) {
continue;
} else {
// get the file name here
fileName = parseFileName(headers.getFirst("Content-Disposition"));
}
//.....
}
//......
}
private String parseFileName(String disposition) {
int fileNameIndex = disposition.indexOf("filename=");
if (fileNameIndex < 0) {
return null;
}
int start = disposition.indexOf("\"", fileNameIndex) + 1;
int end = disposition.indexOf("\"", start);
return disposition.substring(start, end);
}