收藏
回答

上传临时素材中文文件名乱码?

这是代码

@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("上传临时素材失败");
}



获取时名字就是乱码的



回答关注问题邀请回答
收藏

3 个回答

  • 企业微信运营专员-千夜
    企业微信运营专员-千夜
    2020-10-27

    你好,看截图应该是在上传临时素材的时候就已经乱码了,需要确认下上传的格式是不是utf-8

    2020-10-27
    有用
    回复 7
    • cab
      cab
      2020-10-27
      我试过在HttpHeaders 添加Content-Disposition
       来设置文件名,但还是乱码的。该在哪里设置这个格式呢
      2020-10-27
      回复
    • 企业微信运营专员-千夜
      企业微信运营专员-千夜
      2020-10-27回复cab
      可以在本地的环境中
      2020-10-27
      回复
    • cab
      cab
      发表于移动端
      2020-10-27回复企业微信运营专员-千夜
      这个能提供一份调用的sdk吗
      2020-10-27
      回复
    • 企业微信运营专员-千夜
      企业微信运营专员-千夜
      2020-10-28回复cab
      这个是没有sdk的
      2020-10-28
      回复
    • 九天
      九天
      2020-11-20
      请问上传文件时,文件名需要做encodeURL(filename)处理吗?
      2020-11-20
      回复
    查看更多(2)
  • 杜兰特的大胡子和哈登的包
    杜兰特的大胡子和哈登的包
    2021-06-18

    您好,请教一下这个问题解决了吗,如何解决的?

    2021-06-18
    有用
    回复
  • 九天
    九天
    2020-11-20

    请问上传文件时,文件名需要做encodeURL(filename)处理吗?

    2020-11-20
    有用
    回复
登录 后发表内容
问题标签