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...")
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
我们通过
$ 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...")
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
同样执行上述的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...")
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
然后我们执行如下操作
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日志输出
最后看下图片生成的目录
posted on 2020-05-25 21:00 ExplorerMan 阅读(322) 评论(0) 编辑 收藏 举报