目录

上传图片

func imagePost(c *gin.Context) {
    image, err := c.FormFile("file")
    if err != nil {
        errMsg := err.Error()
        logger.Error(errMsg)
        autorestapi.RespErr(c, errMsg)
        return
    }
    fileImage, err := image.Open()
    if err != nil {
        errMsg := err.Error()
        logger.Error(errMsg)
        autorestapi.RespErr(c, errMsg)
        return
    }
    defer fileImage.Close()
    imageGridFS, err := model.GetGridFS("image")
    if err != nil {
        errMsg := err.Error()
        logger.Error(errMsg)
        autorestapi.RespErr(c, errMsg)
        return
    }
    now := self_time.GetNowTimeStamp()
    nowStr := strconv.FormatInt(now, 10)
    file, err := imageGridFS.Create(nowStr)
    if err != nil {
        errMsg := err.Error()
        logger.Error(errMsg)
        autorestapi.RespErr(c, errMsg)
        return
    }
    file.SetName(nowStr)
    _, err = io.Copy(file, fileImage)
    if err != nil {
        errMsg := err.Error()
        logger.Error(errMsg)
        autorestapi.RespErr(c, errMsg)
        return
    }

    err = file.Close()
    if err != nil {
        errMsg := err.Error()
        logger.Error(errMsg)
        autorestapi.RespErr(c, errMsg)
        return
    }

    autorestapi.RespData(c, nowStr)
}

下载图片

func imageGet(c *gin.Context) {
    imagename := c.Param("imagename")
    imageGridFS, err := model.GetGridFS("image")
    if err != nil {
        errMsg := err.Error()
        logger.Error(errMsg)
        autorestapi.RespErr(c, errMsg)
        return
    }
    file, err := imageGridFS.Open(imagename)
    if err != nil {
        errMsg := err.Error()
        logger.Error(errMsg)
        autorestapi.RespErr(c, errMsg)
        return
    }
    size := file.Size()
    io.Copy(c.Writer, file)
    err = file.Close()
    if err != nil {
        errMsg := err.Error()
        logger.Error(errMsg)
        autorestapi.RespErr(c, errMsg)
        return
    }
    c.Writer.WriteHeader(http.StatusOK)
    c.Header("Content-Disposition", fmt.Sprintf("attachment; filename=%s", imagename))
    c.Header("Content-Type", "application/text/plain")
    c.Header("Accept-Length", fmt.Sprintf("%d", size))
}
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。