SpringBoot实现企业微信上传图片


前言

上传的图片大小限制:图片文件大小应在 5B ~ 2MB 之间


一、上传图片

上传图片得到图片URL,该URL永久有效
返回的图片URL,仅能用于图文消息正文中的图片展示,或者给客户发送欢迎语等;若用于非企业微信环境下的页面,图片将被屏蔽。
每个企业每月最多可上传3000张图片,每天最多可上传1000张图片

二、使用步骤

1.引入库

我这里使用了Hutool工具包

<!-- hutool工具包 -->
<dependency>
	<groupId>cn.hutool</groupId>
	<artifactId>hutool-all</artifactId>
	<version>5.4.6</version>
</dependency>

2.实现代码

使用multipart/form-data POST上传文件。
请求方式:POST(HTTPS)
请求地址:https://qyapi.weixin.qq.com/cgi-bin/media/uploadimg?access_token=ACCESS_TOKEN
这里就只需要access_token。
如果不知道access_token获取的,请参考我的:springboot获取企业微信的access_token凭证博客

先看官方请求示例:
POST的请求包中,form-data中媒体文件标识,应包含有filename、content-type等信息

---------------------------acebdf13572468
Content-Disposition: form-data; name="fieldNameHere"; filename="20180103195745.png"
Content-Type: image/png
Content-Length: 220

<@INCLUDE *C:\Users\abelzhu\Pictures\企业微信截图_20180103195745.png*@>
---------------------------acebdf13572468--

我的核心代码:
上一篇:实现企业微信上传临时素材对Hutool工具包的HttpRequest提交已经讲得很清楚了,不懂请看上一篇,或者看官方api

    /**
     * 上传图片
     * @param files
     * @param materialUploadDTO
     * @return
     */
    @Override
    public Result mediaUploadImg(MultipartFile files, MaterialUploadDTO materialUploadDTO) {
        Map<String,Object> map = new HashMap<>();
        try {
            String accessToken = "";//接口凭证这个就不再介绍了
            String url = mediaUploadImg.replace("ACCESS_TOKEN",accessToken);
            String fileName = files.getOriginalFilename();
            String res = HttpRequest.post(url).form("fieldNameHere",files.getBytes(),fileName).setHttpProxy(httpProxyHost,httpProxyPort).execute().body();
            log.info("从企微接口:{}----上传图片结果:{}",url,res);
            JSONObject jsonObject = JSONObject.parseObject(res);
            if(jsonObject.containsKey("errcode") && jsonObject.getInteger("errcode") != 0){
                return Result.success(ResponseHead.error(jsonObject.toJSONString()));
            }
            map.put("responseHead",ResponseHead.success("成功!"));
            map.put("responseBody",jsonObject);
        }catch (Exception e){
            log.error("上传图片异常:{}",e.getMessage());
            e.printStackTrace();
        }
        return Result.success(map);
    }

返回示列:
上传后得到的图片URL。永久有效

{
   "errcode": 0,
   "errmsg": """url" : "http://p.qpic.cn/pic_wework/3474110808/7a7c8471673ff0f178f63447935d35a5c1247a7f31d9c060/0"
}

总结

需要注意图片文件大小应在 5B ~ 2MB 之间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值