RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.add("Authorization", addToken);
MediaType type = MediaType.parseMediaType("multipart/form-data;charset=UTF-8");
headers.setContentType(type);
MultiValueMap<String, Object> form = new LinkedMultiValueMap<String, Object>();
FileSystemResource fileSystemResource = new FileSystemResource("c:\\测试.txt");
form.add("parent_dir", uploadPath);
form.add("file", fileSystemResource);
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<MultiValueMap<String, Object>>(form, headers);
ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class);
Content-Disposition 我查了下好像只支持 ISO8859-1 编码,
尝试用这种方法手动转换过去也不行。
HttpHeaders headers2 = new HttpHeaders();
String cd = "form-data; name=\"file\"; filename=\"" + "测试" + "\"";
String cdEncode = new String(cd.getBytes("utf-8"), "iso8859-1");
headers2.add("Content-Disposition", cdEncode);
HttpEntity<FileSystemResource> fileSystemResourceHttpEntity = new HttpEntity<FileSystemResource>(fileSystemResource, headers2);
form.add("file", fileSystemResourceHttpEntity);
请问 java 后台上传文件应该怎么处理中文文件名?谢谢
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.