• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    golang语言实现的文件上传与文件下载功能示例

    本文实例讲述了golang实现的文件上传与文件下载功能。分享给大家供大家参考,具体如下:

    upload.go

    复制代码 代码如下:
    package common
    import (
     "io/ioutil"
     "os"
     "path"
     "github.com/gin-gonic/gin"
     "googo.co/goo"
     "googo.co/utils"
    )
    const (
     UPLOAD_DIR = "static/"
    )
    type Upload struct {
    }
    func (this Upload) DoHandle(c *gin.Context) *goo.Result {
     fh, err := c.FormFile("file")
     if err != nil {
      return goo.Err(700, "上传失败:"+err.Error(), err.Error())
     }
     f, err := fh.Open()
     if err != nil {
      return goo.Err(701, "上传失败:"+err.Error(), err.Error())
     }
     defer f.Close()
     bytes, err := ioutil.ReadAll(f)
     if err != nil {
      return goo.Err(702, "上传失败:"+err.Error(), err.Error())
     }
     md5File := utils.MD5(bytes)
     fpath := md5File[0:2] + "/" + md5File[2:4] + "/"
     if err := os.MkdirAll(UPLOAD_DIR+fpath, 0755); err != nil {
      return goo.Err(703, "上传失败:"+err.Error(), err.Error())
     }
     fname := fpath + md5File[8:24] + path.Ext(fh.Filename)
     fw, err := os.Create(UPLOAD_DIR + fname)
     if err != nil {
      return goo.Err(704, "上传失败:"+err.Error(), err.Error())
     }
     defer fw.Close()
     if _, err := fw.Write(bytes); err != nil {
      return goo.Err(705, "上传失败:"+err.Error(), err.Error())
     }
     return goo.Succ(gin.H{
      "url": "/file/" + fname,
     })
    }

    复制代码 代码如下:
    // 上传文件
    r.POST("/upload", goo.Handler(common.Upload{}))
    // 下载文件
    r.StaticFS("/file", http.Dir("./static"))
    // 访问
    http://localhost:18000/file/ab/cd/efghijk.png

    希望本文所述对大家Go语言程序设计有所帮助。

    您可能感兴趣的文章:
    • golang实现的文件上传下载小工具
    • Golang实现异步上传文件支持进度条查询的方法
    • Golang+Android基于HttpURLConnection实现的文件上传功能示例
    • golang简单获取上传文件大小的实现代码
    • Golang实现http文件上传小功能的案例
    上一篇:Go语言变量创建的五种方法
    下一篇:golang使用http client发起get和post请求示例
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    golang语言实现的文件上传与文件下载功能示例 golang,语言,实现,的,文件,