gin框架图片上传代码
package manage
import (
"github.com/gin-gonic/gin"
"fmt"
"os"
"time"
"path/filepath"
"net/http"
)
func UploadfileIndex(c *gin.Context) {
fileHeader, err := c.FormFile("file")
if err != nil {
responseErr(c, err)
return
}
now := time.Now()
fileType := "other"
fileExt := filepath.Ext(fileHeader.Filename)
if fileExt == ".jpg" || fileExt == ".png" || fileExt == ".gif" || fileExt == ".jpeg" {
fileType = "img"
}
fileDir := fmt.Sprintf("public/upload/%s/%d/%d/%d", fileType, now.Year(), now.Month(), now.Day())
err = os.MkdirAll(fileDir, os.ModePerm)
if err != nil {
responseErr(c, err)
return
}
timeStamp := time.Now().Unix()
fileName := fmt.Sprintf("%d-%s", timeStamp, fileHeader.Filename)
filePathStr := filepath.Join(fileDir, fileName)
c.SaveUploadedFile(fileHeader,filePathStr)
c.JSON(200, gin.H{
"status": "200",
"filename": fileHeader.Filename,
})
}
func responseErr(c *gin.Context, err error) {
c.JSON(http.StatusOK, gin.H{"code": 0, "message": err})
}