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 下载用户头像
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
}