这是代码
@Test
public void testUploadMedia() {
FileSystemResource resource = new FileSystemResource("/Users/lanyanhua/Desktop/中文名.jpg");
String mediaId = uploadMedia(resource);
System.out.println("mediaId:" + mediaId);
//3xyN1by2qk0dVfEwKJ2ZvC4LA38qGprE3xMRbr5U6h2g
//3XmJgRO7QE9mH_WCaYNgE4ETur61Few3MKTL79lzCYiWTa_Re2Q2CLX5OsCeYmAg-
}
/**
* 上传临时素材
*
* @param resource 文件
* @return media_id,该media_id仅三天内有效
*/
public String uploadMedia(FileSystemResource resource) {
String url = "https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE"
.replace("ACCESS_TOKEN", token).replace("TYPE", "image");
RestTemplate restTemplate = new RestTemplate();
MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();
param.add("file", resource);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(param, headers);
ResponseEntity<JSONObject> responseEntity = restTemplate.postForEntity(url, requestEntity, JSONObject.class);
if (responseEntity.getStatusCode() == HttpStatus.OK) {
JSONObject body = responseEntity.getBody();
if (body.getInteger("errcode") == 0) {
return body.getString("media_id");
}
}
throw new BusinessException("上传临时素材失败");
}
获取时名字就是乱码的
你好,看截图应该是在上传临时素材的时候就已经乱码了,需要确认下上传的格式是不是utf-8
来设置文件名,但还是乱码的。该在哪里设置这个格式呢
您好,请教一下这个问题解决了吗,如何解决的?
请问上传文件时,文件名需要做encodeURL(filename)处理吗?