1. 上传多个文件

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>Document</title>
  8. </head>
  9. <body>
  10. <form action="http://localhost:8000/upload" method="post" enctype="multipart/form-data">
  11. 上传文件:<input type="file" name="files" multiple>
  12. <input type="submit" value="提交">
  13. </form>
  14. </body>
  15. </html>
  1. package main
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "net/http"
  5. "fmt"
  6. )
  7. // gin的helloWorld
  8. func main() {
  9. // 1.创建路由
  10. // 默认使用了2个中间件Logger(), Recovery()
  11. r := gin.Default()
  12. // 限制表单上传大小 8MB,默认为32MB
  13. r.MaxMultipartMemory = 8 << 20
  14. r.POST("/upload", func(c *gin.Context) {
  15. form, err := c.MultipartForm()
  16. if err != nil {
  17. c.String(http.StatusBadRequest, fmt.Sprintf("get err %s", err.Error()))
  18. }
  19. // 获取所有图片
  20. files := form.File["files"]
  21. // 遍历所有图片
  22. for _, file := range files {
  23. // 逐个存
  24. if err := c.SaveUploadedFile(file, file.Filename); err != nil {
  25. c.String(http.StatusBadRequest, fmt.Sprintf("upload err %s", err.Error()))
  26. return
  27. }
  28. }
  29. c.String(200, fmt.Sprintf("upload ok %d files", len(files)))
  30. })
  31. //默认端口号是8080
  32. r.Run(":8000")
  33. }

效果演示:

上传多个文件 - 图1

上传多个文件 - 图2