上传单文件
r.POST("/upload", func(c *gin.Context) {
file, err := c.FormFile("file")
if err != nil {
log.Panicln(err)
}
log.Println("uploaded filename " + file.Filename)
dest := "./uploads/" + file.Filename
// 上传文件至指定的完整文件路径
err = c.SaveUploadedFile(file, dest)
if err != nil {
c.JSON(500, gin.H{
"msg": err.Error(),
})
return
}
msg := fmt.Sprintf("%s uploaded.", file.Filename)
c.JSON(200, gin.H{
"msg": msg,
})
})
使用apipost提交:
上传多文件
r.POST("/uploads", func(c *gin.Context) {
form, err := c.MultipartForm()
if err != nil {
log.Panicln(err)
}
files := form.File["files"]
// var successful, failed int = 0, 0
successful, failed := 0, 0
for _, file := range files {
log.Println("uploaded filename " + file.Filename)
dest := "./uploads/" + file.Filename
if err := c.SaveUploadedFile(file, dest); err != nil {
log.Println(err)
failed++
} else {
successful++
}
}
msg := fmt.Sprintf("%d files, %d successful, %d failed", len(files), successful, failed)
c.JSON(200, gin.H{
"msg": msg,
})
})
使用apipost提交:
静态文件服务
//静态文件服务
r.Static("/uploads", "./uploads")
访问上传的文件:
http://localhost:8080/uploads/tool.png
http://localhost:8080/uploads/beaury.jpeg
http://localhost:8080/uploads/abc.jpeg