func uploadFile(c *gin.Context) {
if c.Request.Method == "POST" {
fileHeader,err := c.FormFile("ycy")
fmt.Println(fileHeader.Filename)
idstr := "ycy01.jpeg"
if err != nil {
c.JSON(http.StatusBadRequest,gin.H{
"msg":fmt.Sprintf("file err :%s",err),
})
return
}
err = c.SaveUploadedFile(fileHeader,"./image/"+idstr)
if err != nil {
c.JSON(http.StatusBadRequest,gin.H{
"msg":fmt.Sprintf("SaveUploadedFile err :%s",err),
})
return
}
c.JSON(http.StatusOK,gin.H{
"msg":"上传成功",
})
return
}
c.HTML(http.StatusOK,"book/upload_file.html",nil)
}
func middleFun(c *gin.Context) {
startTime := time.Now()
time.Sleep(time.Millisecond * 5)
duration := time.Since(startTime)
fmt.Println("middle time fun:",duration.String())
}
func main() {
err:= initDB()
if err != nil {
panic(err)
}
//建立一个http serve
//路由 方法
router := gin.Default()
router.Use(middleFun)
v1 := router.Group("/file")
{
v1.POST("/upload",uploadFile)
v1.GET("/upload",uploadFile)
}
//加载html文件
router.LoadHTMLGlob("templates/**/*")
router.GET("/book/new",addBook)
router.POST("/book/add",addBook)
//router.DELETE("/book/delete",deleteBook)
router.GET("/book/delete",deleteBook)
router.GET("/book/list",bookList)
router.Run(":9090")
}
1、 gin 中间件 使用 gin.Default().Use(function(c *gin.Context){}) Use方法,在接口调用前 都会走此方法 ,可以使用在登录校验等场景
2、本地同一个包内 引用别的文件方法 变量 需要 go build 或者 go run xx.go 所有的go文件都要写上
3、上传文件 文件需要自行命名 SaveUploadedFile(file, 这里是文件路径+文件名字符串)