golang把文件上传到本地目录

· · 2853 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

OSS


七牛云的oss免费10G,但需要有备案的域名
与是自己写了一个简易的库,整合到程序中,把文件上传到本地目录
后续可以通过http控制文件接口
minio也是极好的,但要单独部署,有一定的部署维护成本

例子

使用gin写的http的小例子

func main() {
    sfile := s_file.NewSFile("./files")
    gin.SetMode(gin.DebugMode)
    engine := gin.New()
    engine.POST("/upload", func(c *gin.Context) {
        fileHeader, err := c.FormFile("file")
        if err != nil {
            c.JSON(400, gin.H{"msg": err.Error()})
            return
        }
        log.Printf("upload file %v", fileHeader.Filename)
        file, err := fileHeader.Open()
        if err != nil {
            c.JSON(400, gin.H{"msg": err.Error()})
            return
        }
        defer file.Close()
        content, key, err := sfile.SaveFile(c, fileHeader.Filename, file)
        if err != nil {
            c.JSON(400, gin.H{"msg": err.Error()})
            return
        }
        c.JSON(200, gin.H{"msg": content, "key": key, "size": fileHeader.Size})
        return
    })
    engine.POST("/delete/:key", func(c *gin.Context) {
        err := sfile.DeleteFile(c, c.Param("key"))
        if err != nil {
            c.JSON(400, gin.H{"msg": err.Error()})
            return
        }
        c.JSON(200, gin.H{"msg": "ok"})
        return
    })
    err := engine.Run(":80")
    log.Println(err)
}

地址

https://github.com/krilie/go-sfile


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:

查看原文:golang把文件上传到本地目录

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2853 次点击  
加入收藏 微博
1 回复  |  直到 2019-12-01 08:31:10
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传