正在上载名称为unicode的文件
我有一些JavaScript代码,可以使用ajax将文件上传到服务器,表单数据和接受它的服务器端java代码。我可以上传英文文件名。但当我上传其他Unicode文件名时,我在服务器端得到的文件名无法读取。下面是代码片段 JavaScript 爪哇正在上载名称为unicode的文件,unicode,uploading,form-data,apache-commons-fileupload,ajax-upload,Unicode,Uploading,Form Data,Apache Commons Fileupload,Ajax Upload,我有一些JavaScript代码,可以使用ajax将文件上传到服务器,表单数据和接受它的服务器端java代码。我可以上传英文文件名。但当我上传其他Unicode文件名时,我在服务器端得到的文件名无法读取。下面是代码片段 JavaScript 爪哇 我认为浏览器在上传文件之前会对文件名进行编码。但我不知道它使用了哪种编码,也不知道如何将其解码回来。非常感谢您的帮助。文件上传正确吗?因为它可能只是一切正常,但您用来查看日志的程序无法显示日文字符。哦,顺便说一句,您可能需要更改单词日语文件名或其他Un
我认为浏览器在上传文件之前会对文件名进行编码。但我不知道它使用了哪种编码,也不知道如何将其解码回来。非常感谢您的帮助。文件上传正确吗?因为它可能只是一切正常,但您用来查看日志的程序无法显示日文字符。哦,顺便说一句,您可能需要更改单词日语文件名或其他Unicode文件名,因为英语字母也是Unicode字符,就像日语字符一样。:-事实上,文件上载时使用了这些错误的���������.jpg名称。顺便说一句,感谢您的更正。要查看浏览器发送的内容,请启动wireshark并执行HTTP会话。@Franxo请尝试wireshark或n.m.建议的类似工具以查看浏览器发送的内容。希望浏览器知道如何编码UTF-8和大家好 将是e5 a4 a7 e5 ae b6 e5 a5 bd。如果是,则问题在于服务器无法解码。
var f = new FormData();
f.append("file", file);
xhr.send(f);
public void upload(MultipartFormDataInput input) {
Map<String, List<InputPart>> uploadForm = input.getFormDataMap();
List<InputPart> inputParts = uploadForm.get("user_file[]");
IFileInfo file = null;
for (InputPart inputPart : inputParts) {
try {
MultivaluedMap<String, String> header = inputPart.getHeaders();
fileName = getFileName(header);
System.out.println("File name is " + fileName);
} catch (IOException e) {
e.printStackTrace();
}
}
}
private String getFileName(MultivaluedMap<String, String> header) {
System.out.println("Headers is " + header.getFirst("Content-Disposition"));
String[] contentDisposition = header.getFirst("Content-Disposition")
.split(";");
for (String filename : contentDisposition) {
if ((filename.trim().startsWith("filename"))) {
String[] name = filename.split("=");
String finalFileName = name[1].trim().replaceAll("\"", "");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return finalFileName;
}
}
return "unknown";
}
Headers is form-data; name="user_file[]"; filename="���������.jpg"
File name is ���������.jpg