This commit is contained in:
eatmoreapple 2021-12-31 13:02:22 +08:00
parent c529afa168
commit ac136265e0

18
user.go
View File

@ -61,6 +61,15 @@ func (u *User) GetAvatarResponse() (*http.Response, error) {
// SaveAvatar 下载用户头像 // SaveAvatar 下载用户头像
func (u *User) SaveAvatar(filename string) error { 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() resp, err := u.GetAvatarResponse()
if err != nil { if err != nil {
return err return err
@ -74,18 +83,13 @@ func (u *User) SaveAvatar(filename string) error {
return err return err
} }
} }
defer resp.Body.Close()
// 写文件前判断下 content length 是否是 0不然保存的头像会出现 // 写文件前判断下 content length 是否是 0不然保存的头像会出现
// image not loaded try to open it externally to fix format problem 问题 // image not loaded try to open it externally to fix format problem 问题
if resp.ContentLength == 0 { if resp.ContentLength == 0 {
return fmt.Errorf("get avatar response content length is 0") return fmt.Errorf("get avatar response content length is 0")
} }
file, err := os.Create(filename) defer resp.Body.Close()
if err != nil { _, err = io.Copy(writer, resp.Body)
return err
}
defer file.Close()
_, err = io.Copy(file, resp.Body)
return err return err
} }