gin上传和访问静态文件

需求

上传并访问用户头像

正式项目的流媒体资源(图片、视频)一般都会放在第三方的云服务器上(七牛云、阿里云等),我自己写的玩呢,就放到本地吧

配置静态文件目录

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值