golang使用浏览器下载
时间: 2023-11-02 19:39:55 浏览: 119
Golang-File-Browser:目录浏览器下载器,由golang编写,灵感来自可爱文件浏览器
要使用 Golang 下载文件并在浏览器中打开下载文件的对话框,可以使用以下代码:
```go
package main
import (
"fmt"
"log"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
url := "https://example.com/file.zip" // 下载文件的 URL
filename := "file.zip" // 下载文件的文件名
w.Header().Set("Content-Disposition", "attachment; filename="+filename)
resp, err := http.Get(url)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
defer resp.Body.Close()
w.Header().Set("Content-Type", resp.Header.Get("Content-Type"))
w.Header().Set("Content-Length", resp.Header.Get("Content-Length"))
_, err = io.Copy(w, resp.Body)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
})
fmt.Println("Server listening on :8080")
log.Fatal(http.ListenAndServe(":8080", nil))
}
```
在这个例子中,我们首先设置了下载文件的 URL 和文件名。然后我们设置了响应头部,告诉浏览器该文件应该被下载。接下来,我们使用 http.Get() 方法获取文件数据,将其写入响应主体中,并设置了响应头部,以便浏览器可以正确显示下载进度和文件大小。最后,我们使用 http.ListenAndServe() 方法启动服务器并监听 8080 端口。
在浏览器中访问 http://localhost:8080,将会自动下载文件并弹出下载文件对话框。
阅读全文