FileRouter.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package router
  2. import (
  3. "errors"
  4. "fmt"
  5. "github.com/gin-gonic/gin"
  6. "net/http"
  7. "time"
  8. )
  9. var (
  10. uploadFileKey = "upload-key"
  11. filepath = "./file/resources/"
  12. )
  13. func FileRouter(engine *gin.RouterGroup) {
  14. engine.StaticFS("/static", http.Dir("file/resources"))
  15. user := engine.Group("/file")
  16. {
  17. user.POST("/upload", uploadHandler)
  18. }
  19. }
  20. func uploadHandler(c *gin.Context) {
  21. header, err := c.FormFile("file")
  22. fmt.Println("header", header.Size)
  23. if err != nil {
  24. c.JSON(200, CreateResultError(400, "上传错误"))
  25. return
  26. }
  27. fmt.Println("header", header.Size)
  28. //dst := header.Filename
  29. // gin 简单做了封装,拷贝了文件流
  30. //if err := c.SaveUploadedFile(header, dst); err != nil {
  31. // c.JSON(200, CreateResultError(400, "上传错误"))
  32. // return
  33. //}
  34. //上传到的路径
  35. //path := 'resource/public/uploads/20060102150405test.xlsx'
  36. header.Filename = fmt.Sprintf("%s%s", time.Now().Format("20060102150405"), header.Filename) // 文件名格式 自己可以改 建议保证唯一性
  37. path := filepath + header.Filename //路径+文件名上传
  38. // 上传文件到指定的目录
  39. err = c.SaveUploadedFile(header, path)
  40. if err != nil {
  41. err = errors.New(fmt.Sprintf("上传失败,%v", err))
  42. return
  43. }
  44. c.JSON(200, CreateResult())
  45. }