实现个图片上传,记录一下
我这里是采用的调试工具,apipost去直接上传的,参数值选择file即可
上传的图片,两种方式,一是用原来的文件名,直接file.Filename即可。
Go
func Upload(c *gin.Context) {
file, _ := c.FormFile("file") // file为字段名
//获取当前日期参数,当做文件名
name := utils.NowTimeString()
extstring := path.Ext(file.Filename)
dst := "upload_files/" + name + extstring
//直接用原来的文件名
//dst := "upload_files/" + file.Filename
c.SaveUploadedFile(file, dst)
// 都是gin.context作为入参
c.JSON(http.StatusOK, gin.H{
"message": "success",
"file_name": name + extstring,
})
}
另外一种方法就是,自己生成名字,这里自己封装了一个方法
Go
package utils
import (
"fmt"
"time"
)
// 获取当前日期的参数当做文件名
func NowTimeString() string {
now := time.Now()
str := fmt.Sprintf("%d%d%d%d%d%d%d", now.Year(), now.Month(), now.Day(), now.Hour(), now.Minute(), now.Second(), now.Nanosecond())
return str
}
年月日时分秒最后加上纳秒拼接得来的
完成效果如下