go支持文件下载demo
时间: 2023-08-12 17:02:34 浏览: 67
Go语言提供了多种方式来实现文件下载的demo。
一种简单的实现方式是使用net/http包中的ServeFile函数来提供文件下载服务。以下是一个示例代码:
```go
package main
import (
"log"
"net/http"
)
func main() {
fs := http.FileServer(http.Dir("files")) // 将files目录下的文件作为静态文件服务器
http.Handle("/files/", http.StripPrefix("/files/", fs)) // 配置路由
http.HandleFunc("/download", func(w http.ResponseWriter, r *http.Request) {
filePath := "files/demo.txt" // 要下载的文件路径
http.ServeFile(w, r, filePath)
})
log.Println("Listening on :8080...")
err := http.ListenAndServe(":8080", nil)
if err != nil {
log.Fatal(err)
}
}
```
在上述代码中,首先使用http.FileServer函数将files目录下的文件作为静态文件服务器,然后使用http.Handle函数配置路由,将文件服务器的处理路径配置为/files/。接着使用http.HandleFunc函数配置/download路径的处理函数,该函数调用http.ServeFile函数实现文件的下载。
另一种实现方式是使用gin框架,该框架提供了更多的功能和便捷的API。以下是一个使用gin框架实现下载文件的demo示例:
```go
package main
import (
"github.com/gin-gonic/gin"
"log"
"net/http"
)
func main() {
r := gin.Default()
r.Static("/files", "./files") // 配置静态文件路由
r.GET("/download", func(c *gin.Context) {
filePath := "files/demo.txt" // 要下载的文件路径
c.File(filePath)
})
log.Println("Listening on :8080...")
err := r.Run(":8080")
if err != nil {
log.Fatal(err)
}
}
```
在上述代码中,首先使用gin.Default()初始化一个gin引擎,然后使用r.Static函数配置/files的静态文件路径。接着使用r.GET函数配置/download路径的处理函数,该函数调用c.File函数实现文件的下载。
以上就是使用Go语言实现文件下载的两种简单示例,可以根据具体需求选择适合的方式来实现文件下载服务。