From 6a0f787925f7d60f78850247300a667db58c36e8 Mon Sep 17 00:00:00 2001 From: eatmoreapple Date: Sat, 12 Nov 2022 23:37:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=87=E4=BB=B6=E5=AD=98?= =?UTF-8?q?=E5=82=A8=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- message.go | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/message.go b/message.go index 09279f1..7a7cda0 100644 --- a/message.go +++ b/message.go @@ -7,6 +7,7 @@ import ( "errors" "fmt" "html" + "io" "net/http" "os" "strconv" @@ -311,6 +312,27 @@ func (m *Message) GetMedia() (*http.Response, error) { return m.Bot.Caller.Client.WebWxGetMedia(m, m.Bot.Storage.LoginInfo) } +// SaveFile 保存文件到指定的 io.Writer +func (m *Message) SaveFile(writer io.Writer) error { + resp, err := m.GetFile() + if err != nil { + return err + } + defer func() { _ = resp.Body.Close() }() + _, err = io.Copy(writer, resp.Body) + return err +} + +// SaveFileToLocal 保存文件到本地 +func (m *Message) SaveFileToLocal(filename string) error { + file, err := os.Create(filename) + if err != nil { + return err + } + defer func() { _ = file.Close() }() + return m.SaveFile(file) +} + // Card 获取card类型 func (m *Message) Card() (*Card, error) { if !m.IsCard() {