文件上传例子
func main() {
router := gin.Default()
// 设置支持文件上传的大小,默认32 MiB
router.MaxMultipartMemory = 8 << 20 // 8 MiB
// 上传接口
router.POST("/upload", func(c *gin.Context) {
// 读取文件对象
file, _ := c.FormFile("file")
// 打印文件名
log.Println(file.Filename)
// 将文件保存到dst路径,如果使用云存储这个地方直接调用云存储api保存文件
c.SaveUploadedFile(file, dst)
c.String(http.StatusOK, fmt.Sprintf("'%s' uploaded!", file.Filename))
})
router.Run(":8080")
}
文件下载例子
下面是不需要安全验证的例子,直接暴露静态文件存储的路径
func main() {
router := gin.Default()
// 设置静态资源文件目录,并且绑定一个Url前缀
// 静态资源文件目录:/var/www/tizi365/assets
// /assets是访问静态资源的url前缀
// 例如:
// /assets/images/1.jpg 这个url文件,存储在/var/www/tizi365/assets/images/1.jpg
router.Static("/assets", "/var/www/tizi365/assets")
// 为单个静态资源文件,绑定url
// 这里的意思就是将/favicon.ico这个url,绑定到./resources/favicon.ico这个文件
router.StaticFile("/favicon.ico", "./resources/favicon.ico")
// Listen and serve on 0.0.0.0:8080
router.Run(":8080")
}