收藏
回答

上传图片后,打开提示图片损坏,如何处理?

https://developers.weixin.qq.com/doc/store/API/basics/img_upload.html


上传后成功返回mediaId,通过mediaId下载,提示图片损坏,对比二进制流,发现返回的头部多了文件名和文件类型,请问如何处理?????

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

2 个回答

  • 楚林
    楚林
    16小时前
    BufferedImage img = ImageIO.read(file.getInputStream());
            //获取图片的长和宽
            int width = img.getWidth();
            int height = img.getHeight();
            // 调用微信上传图片接口
            // 使用Hutool的HttpUtil上传图片
            JSONObject jsonParam = new JSONObject();
            jsonParam.put("upload_type",0);
            jsonParam.put("resp_type",0);
            jsonParam.put("height",height);
            jsonParam.put("width",width);
            List<String> list = new ArrayList<>();
            for(String key : jsonParam.keySet()){
                list.add(String.format("%s=%s",key,jsonParam.getString(key)));
            }
            String token = TenantTokenCacheUtils.getToken(UserContextHolder.getTenantId());
            String strUrl = String.format("https://api.weixin.qq.com/channels/ec/basics/img/upload?access_token=%s&%s",token,String.join("&",list));
            File tempFile = new File("D:\\temp_image.jpg");
    
            file.transferTo(tempFile);
            HttpResponse response = HttpUtil.createPost(strUrl)
                    .header("content-type", "image/jpg")
                    .form("media", tempFile).execute();
    


    16小时前
    有用
    回复
  • Mr.Zhao
    Mr.Zhao
    发表于小程序端
    22小时前

    postman试过吗

    22小时前
    有用
    回复 2
    • 楚林
      楚林
      21小时前
      试过用终端 curl 的方式,按照官方接口文档的方式,成功返回mediaId,下载图片一样提示损坏(二进制头部比本地图片多了头部的文件名称及类型)
      21小时前
      回复
    • Mr.Zhao
      Mr.Zhao
      发表于小程序端
      20小时前回复楚林

      用了也得用对啊,咋用的,代码咋写的全看不见

      20小时前
      回复
登录 后发表内容