beego官网 beego上传官方文档

下面说说官方文档里没有说明的地方

上传代码

func (c *FormController) Post() {
    f, h, err := c.GetFile("uploadname")
    defer f.Close()
    if err != nil {
        fmt.Println("getfile err ", err)
    } else {
        c.SaveToFile("uploadname", "/www/"+h.Filename)
    }
}

保存路径是 "/www/"+h.Filename 这上传到哪地方也不知道, 相对于项目文件夹的路径就让人容易明白的多了, 我在pybbs-go里配置的上传文件夹是 views/upload/avatar

具体代码

func (c *UserController) UpdateAvatar() {
	flash := beego.NewFlash()
	f, h, err := c.GetFile("avatar")
	defer f.Close()
	if err != nil {
		flash.Error("上传失败")
		flash.Store(&c.Controller)
		c.Redirect("/user/setting", 302)
		return
	} else {
		c.SaveToFile("avatar", "static/upload/avatar/" + h.Filename)
		_, user := filters.IsLogin(c.Ctx)
		user.Avatar = "/static/upload/avatar/" + h.Filename
		models.UpdateUser(&user)
		flash.Success("上传成功")
		flash.Store(&c.Controller)
		c.Redirect("/user/setting", 302)
	}
}

注意, 要事先新建好对于的文件夹

原文链接: https://tomoya92.github.io/2016/08/26/beego-uploadfile/