From a9fc0958f67e5dadadacf1aca5c3a330e0404367 Mon Sep 17 00:00:00 2001 From: lumiaqian Date: Thu, 17 Oct 2024 11:42:27 +0800 Subject: [PATCH] feat(media): add UploadImgFromReader api add UploadImgFromReader api --- work/material/media.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/work/material/media.go b/work/material/media.go index 5419dfc..42a9b6e 100644 --- a/work/material/media.go +++ b/work/material/media.go @@ -59,6 +59,30 @@ func (r *Client) UploadImg(filename string) (*UploadImgResponse, error) { return result, err } +// UploadImgFromReader 从 io.Reader 上传图片 +// @see https://developer.work.weixin.qq.com/document/path/90256 +func (r *Client) UploadImgFromReader(filename string, reader io.Reader) (*UploadImgResponse, error) { + var ( + accessToken string + err error + ) + if accessToken, err = r.GetAccessToken(); err != nil { + return nil, err + } + var byteData []byte + byteData, err = io.ReadAll(reader) + if err != nil { + return nil, err + } + var response []byte + if response, err = util.PostFileByStream("media", filename, fmt.Sprintf(uploadImgURL, accessToken), byteData); err != nil { + return nil, err + } + result := &UploadImgResponse{} + err = util.DecodeWithError(response, result, "UploadImg") + return result, err +} + // UploadTempFile 上传临时素材 // @see https://developer.work.weixin.qq.com/document/path/90253 // @mediaType 媒体文件类型,分别有图片(image)、语音(voice)、视频(video),普通文件(file)