func FileDownload(c *gin.Context){
c.Writer.Header().Add("Content-Disposition", fmt.Sprintf("attachment; filename=%s", filename))//fmt.Sprintf("attachment; filename=%s", filename)对下载的文件重命名
c.Writer.Header().Add("Content-Type", "application/octet-stream")
c.File("./file/a.txt")
}
它的核心是调用了http包 http.ServeFile(c.Writer, c.Request, filepath)
ServeFile 又调用了func serveFile(w ResponseWriter, r *Request, fs FileSystem, name string, redirect bool) 方法