zoukankan      html  css  js  c++  java
  • GoWeb-Gin 文件上载

    前些日子,我们Node.JS了一把。

    如今,我们还是回到我们伟大的GO来吧

    今天,带领大家继续Golang的啦,而且是个上传文件的例子

    先给大家看结果

    1. 如果是windows端,你需要安装postman,这个是谷歌浏览器的插件,模拟HTTP客户端。我下载的可以独立使用

    记得form表单的key域类型要选择‘文件’,这里是个坑,我搞了不少时间,一直奇怪,为何Linux客户端可以上载,但是windodws客户端就是不行。后了,才发现是这个问题。

    Linux终端下,你输入客户端命令就行:

    curl -X POST http://localhost:8080/upload -F "file=@./test.txt" -H "Content-Type:multipart/form-data"

    记得在windows下也好,linux下也吧,test.txt,10.1.docx那是我要上传的文件,请替换成你们自己的文件

    //

    gonic-gin:一个好用的web框架

    一.下载安装

    直接用go的get命令就可以了,ZTND简单,哈哈哈

    go get github.com/gin-gonic/gin

    二.go工程里使用

    import进"github.com/gin-gonic/gin"就行了,简单的不要不要的。。。

    import (
      "github.com/gin-gonic/gin"
    )
    三.今天的主角,DEMO:upload file
    //gin.go

    package main

    import (
      "fmt"
      "net/http"
      "github.com/gin-gonic/gin"
    )

    func main() {
      router := gin.Default()
      // Set a lower memory limit for multipart forms (default is 32 MiB)
      router.MaxMultipartMemory = 8 << 20 // 8 MiB
      router.Static("/", "./public")
      router.POST("/upload", func(c *gin.Context) {
        // Source
        file, err := c.FormFile("file")
        if err != nil {
          c.String(http.StatusBadRequest, fmt.Sprintf("get form err: %s", err.Error()))
          return
        }
        if err := c.SaveUploadedFile(file, file.Filename); err != nil {
          c.String(http.StatusBadRequest, fmt.Sprintf("upload file err: %s", err.Error()))
          return
        }
        c.String(http.StatusOK, fmt.Sprintf("File %s uploaded successfully ", file.Filename))
      })
      router.Run(":8080")
    }

    //编译运行

    go build gin.go

    ./gin

    //结果

    哈哈,在本文最上边呢!

    ls(服务器上看看,果然 10.1.docx和test.txt都上载过来了)
    10.1.docx gin-1 gin-1.go main.go test.txt

    FInally:

    不可思议吧,这么简单就能实现文件上传!但这就是框架的力量啊,让我们向框架的开发者致敬

    稍微解释下上边那段代码:

    1. go工程里应用gin框架,这个前面说过了

    2.默认设置启动路由

    3.设置路由内存上限

    4.设置静态文件目录:当前目录和public目录(默认)

    5.匿名函数响应客户端post请求,action为/upload

    6.fetch请求的上载文件结构

    7.SaveUploadedFile同名文件,也即执行上载过程

    8.服务在8080端口监听客户端连接

    好了,也很详细了,其它的咱们来日方长,慢慢研究。

    你喜欢GO了吗?那你就GO去吧!

    哈哈哈哈哈哈

  • 相关阅读:
    SAP 会计科目
    固定资产采购
    MIRO 注意点
    移动类型与会计科目的字段选择
    特征、分类的命名规则
    采购进项税、 含税价转不含税价
    换手率
    内盘、外盘
    SAP 文本增强
    Intellj IDEA 问题集锦
  • 原文地址:https://www.cnblogs.com/woodzcl/p/7553010.html
Copyright © 2011-2022 走看看