golangWeb框架---github.com/gin-gonic/gin学习二(文件上传、多文件上传) - Go语言中文社区

golangWeb框架---github.com/gin-gonic/gin学习二(文件上传、多文件上传)



关于如何实现Gin框架上传单个文件、多个文件的案例

上传单个文件(一)

package main

import (
	"github.com/gin-gonic/gin"
	"io"
	"log"
	"net/http"
	"os"
)


func main() {
	router := gin.Default()

	router.POST("/upload", getting)
	router.Run()
}

func getting(c *gin.Context){
	file, handler, err := c.Request.FormFile("file")
	filename := handler.Filename
	log.Println("Received file:", handler.Filename)
	out, err := os.Create(filename)
	if err != nil {
		log.Fatal(err)
	}
	defer out.Close()
	_, err = io.Copy(out, file)
	if err != nil {
		log.Fatal(err)
	}
	c.String(http.StatusOK, "Uploaded...")
}

我们通过

$ curl -X POST http://localhost:8080/upload -F “file=@/Users/zhiliao/Desktop/23sdfsdfs_wew.png” -H “Content-Type: multipart/form-data”

如下命令就可以实现文件的上传(图片目录是我本机上的一张图片)

效果图如下:
在这里插入图片描述

上传单个文件(二)

我们还可以利用如下的方法

package main

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



func main() {
	router := gin.Default()

	router.POST("/upload", getting)
	router.Run()
}


func getting(c *gin.Context){
	file, _ := c.FormFile("file")
	log.Println(file.Filename)
	//这里省略了其他操作
	// Upload the file to specific dst.
		// c.SaveUploadedFile(file, dst)
	c.String(http.StatusOK, "Uploaded...")
}

同样执行上述的CURL命令,后台即可成功收到成功日志输出,但是代码里面我只是列出了文件名字,对应文件的输出操作就暂时省去了,后续专门开一篇来介绍文件操作的方方面面
在这里插入图片描述

最后看生成的文件
在这里插入图片描述

上传多个文件

我们还可以实现批量文件上传

package main

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



func main() {
	router := gin.Default()

	router.POST("/upload", getting)
	router.Run()
}

func getting(c *gin.Context){

	form, _ := c.MultipartForm()
	files := form.File["upload[]"]

	for _, file := range files {
		log.Println(file.Filename)
		c.SaveUploadedFile(file,file.Filename)
	}
	c.String(http.StatusOK, "Uploaded...")


}


然后我们执行如下操作
curl -X POST
http://localhost:8080/upload -F “upload[]=@/Users/zhiliao/Desktop/23sdfsdfs_wew.png” -F “upload[]=@/Users/zhiliao/Desktop/WX20180903-103357.png” -H “Content-Type: multipart/form-data”

就可以看到log日志输出
在这里插入图片描述

最后看下图片生成的目录
在这里插入图片描述

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/u013210620/article/details/82782628
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-08-27 10:33:43
  • 阅读 ( 1433 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢