Gin 文件上传 按照日期存储
1 实现步骤
/*
1.获取上传的文件
2.获取后缀名 判断类型是否正确 .jpg .png .gif .jpeg
3.创建图片保存目录 static/upload/20240101
4.生成文件名称和文件保存的目录
5.保存
*/
2 代码
// 获取当前的日期
func GetDay() string {
template := "20060102"
return time.Now().Format(template)
}
// 获取时间戳
func GetUnix() int64 {
return time.Now().Unix()
}
func (con ApiController) DoUpload(c *gin.Context) {
// 1.获取上传的文件
file, err := c.FormFile("file")
if err != nil {
con.Error(c)
}
// 2.获取后缀名 判断类型是否正确 .jpg .png .gif .jpeg
extName := path.Ext(file.Filename)
allowExtMap := map[string]bool{
".jpg": true,
".png": true,
".gif": true,
".jpeg": true,
}
_, ok := allowExtMap[extName]
if ok {
c.JSON(http.StatusOK, gin.H{
"err": "上传的文件不合法",
})
}
// 3.创建图片保存目录
day := GetDay()
// 文件保存目录
dir := path.Join("./static/upload", day)
if err := os.MkdirAll(dir, 0666); err != nil {
c.JSON(http.StatusOK, gin.H{
"err": "目录创建失败",
})
}
// 4.生成保存目录,以及文件名
// 生成文件名称,防止重名的覆盖
fileName := strconv.FormatInt(GetUnix(), 10) + extName
dst := path.Join(dir, fileName)
// 保存图片
c.SaveUploadedFile(file, dst)
con.Success(c)
}
标签:文件,存储,err,true,保存,file,Gin,上传
From: https://www.cnblogs.com/chunyouqudongwuyuan/p/17969510