引言
在开发小程序后端的时候,遇到需求,需要接受小程序客服信息用户回复的特定指端,返回对应的图片,然而图片是存在oss或者是某些特殊链接转成base64的形式,在使用微信提供的临时素材上传接口的时候,经常返回媒体文件解析错误 经过一轮的方法查找,发现基本都是php解决的办法,经过一轮总结网上各路大神的解决方式,终于能得到想要的结果
分析
临时素材接口文档地址 临时素材接口 · 小程序
从文档分析,上传临时图片有几个点需要注意:
- 上传图片官方介绍请求的里面media字段是form-data中媒体文件标识,有filename、filelength、content-type等信息
- 请求不能使用axios,axios服务端貌似不支持表单类型提交,在不新增第三方库的情况下,使用request的form方法,上传
- 对于oss、线上类型的图片,可以通过axios直接获取图片的stream丢到media里面即可
- 对于特殊的base64图片,先把base64转换成buffer,再利用request.form,把buffer丢进去media
- 对于本地的图片,可以使用fs创建一个可读流进行传递 <