栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

七. IHOME (GoWeb项目 上传用户头像并保存在七牛云)

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

七. IHOME (GoWeb项目 上传用户头像并保存在七牛云)

1. 注册并配置七牛云

注册账号并选择免费活动 选择云存储

新建存储空间,建议华东华南华北任选一个,访问控制选择公有,否则后边显示不出图片

空间创建成功会自动为你分配一个测试域名,个人项目没有域名的话可以直接使用测试域名即可

 获取密钥

点击右上角,秘钥管理,可以看到AK,SK后面项目会使用

2. 实现头像上传

main.go 添加 r1.POST("user/avatar", controller.PostAvatar)

ihome/model/modelFunc.go 中添加函数 UpdataAvatar

func UpdateAvatar(userName, avatar string) error {
	return GlobalConn.Model(new(User)).Where("name = ?", userName).Update("avatar_url", avatar).Error
}

ihome/controller/user.go 添加函数PostAvatar

func PostAvatar(ctx *gin.Context) {
	file, _ := ctx.FormFile(("avatar"))
	fileSize := file.Size
	f, _ := file.Open()
	buf := make([]byte, file.Size)
	f.Read(buf)
	var AccessKey = "Your AK"
	var SerectKey = "Your SK"
	var Bucket = "Your Space name" // 前边创建的空间名称
	var ImgUrl = "Your url" // 前边给的测试域名
	putPlicy := storage.PutPolicy{
		Scope: Bucket,
	}
	mac := qbox.NewMac(AccessKey, SerectKey)
	upToken := putPlicy.UploadToken(mac)
	cfg := storage.Config{
		Zone:          &storage.ZoneHuadong, // 这里选择你的空间所在 华南华北华东等
		UseCdnDomains: false,
		UseHTTPS:      false,
	}
	putExtra := storage.PutExtra{}
	formUploader := storage.NewFormUploader(&cfg)
	ret := storage.PutRet{}
	reader := bytes.NewReader(buf)
	err := formUploader.PutWithoutKey(context.Background(), &ret, upToken, reader, fileSize, &putExtra)
	if err != nil {
		fmt.Println("formUploader.PutWithoutKey err: ", err)
	}
	url := ImgUrl + ret.Key
	// fmt.Println(url)

	userName := sessions.Default(ctx).Get("username")

	model.UpdateAvatar(userName.(string), url)

	resp := make(map[string]interface{})
	resp["errno"] = utils.RECODE_OK
	resp["errmsg"] = utils.RecodeText(utils.RECODE_OK)

	temp := make(map[string]interface{})
	temp["avatar_url"] = url

	resp["data"] = temp

	ctx.JSON(http.StatusOK, resp)
}

测试

1. 点击修改 -> 上传文件 -> 选择一张图片确定

 

 2. 进入数据库可以发现新增文件

项目之后内容基本可以参考前边模块,因此项目到此基本可以结束。@。@

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/907178.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号