From ac136265e0ef9094140064324123cab1e41c9bc0 Mon Sep 17 00:00:00 2001 From: eatmoreapple <15055461510@163.com> Date: Fri, 31 Dec 2021 13:02:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- user.go | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/user.go b/user.go index 61a8e27..809d8ea 100644 --- a/user.go +++ b/user.go @@ -61,6 +61,15 @@ func (u *User) GetAvatarResponse() (*http.Response, error) { // SaveAvatar 下载用户头像 func (u *User) SaveAvatar(filename string) error { + file, err := os.Create(filename) + if err != nil { + return err + } + defer file.Close() + return u.SaveAvatarWithWriter(file) +} + +func (u *User) SaveAvatarWithWriter(writer io.Writer) error { resp, err := u.GetAvatarResponse() if err != nil { return err @@ -74,18 +83,13 @@ func (u *User) SaveAvatar(filename string) error { return err } } - defer resp.Body.Close() // 写文件前判断下 content length 是否是 0,不然保存的头像会出现 // image not loaded try to open it externally to fix format problem 问题 if resp.ContentLength == 0 { return fmt.Errorf("get avatar response content length is 0") } - file, err := os.Create(filename) - if err != nil { - return err - } - defer file.Close() - _, err = io.Copy(file, resp.Body) + defer resp.Body.Close() + _, err = io.Copy(writer, resp.Body) return err }