需求
上传并访问用户头像
正式项目的流媒体资源(图片、视频)一般都会放在第三方的云服务器上(七牛云、阿里云等),我自己写的玩呢,就放到本地吧
配置静态文件目录
router := gin.Default()
// 服务静态文件目录
//router.Static("/static", "./static")
// 服务虚拟静态文件系统
router.StaticFS("/static", http.Dir("./static"))
// 服务单个静态文件
//router.StaticFile("/favicon.ico", "./static/favicon.ico")
router.run()
上传头像
// 编辑用户头像
func PatchUserPhotoApi(c *gin.Context) {
file, err := c.FormFile("photo")
if err != nil {
c.JSON(http.StatusInternalServerError, gin.H{
"code": errmsg.PARAM_ERROR,
"message": errmsg.GetErrorByCode(errmsg.PARAM_ERROR),
})
}
pwd, _ := os.Getwd() // 项目根路径
filePath := fmt.Sprintf("%s/static/img/%s", pwd, file.Filename)
c.SaveUploadedFile(file, filePath)
// 保存图片路径到数据库
serverAddress := fmt.Sprintf("%s:%d", config.Conf.Server.Host, config.Conf.Server.Port)
c.JSON(http.StatusOK, gin.H{
"code": errmsg.SUCCESS,
"message": errmsg.GetErrorByCode(errmsg.SUCCESS),
"data": fmt.Sprintf("%s/static/img/%s", serverAddress, file.Filename),
})
}
访问
在浏览器输入返回的文件地址:http://127.0.0.1:9090/static/img/WechatIMG9.jpeg
960

被折叠的 条评论
为什么被折叠?



