小编cuo*_*ong的帖子

如何让客户端在下载文件时打开保存文件对话框

我希望浏览器显示或打开文件保存对话框,以保存用户单击下载文件按钮时发送的文件。

我的服务器端下载代码:

func Download(w http.ResponseWriter, r *http.Request) {
    url := "http://upload.wikimedia.org/wikipedia/en/b/bc/Wiki.png"

    timeout := time.Duration(5) * time.Second
    transport := &http.Transport{
        ResponseHeaderTimeout: timeout,
        Dial: func(network, addr string) (net.Conn, error) {
            return net.DialTimeout(network, addr, timeout)
        },
        DisableKeepAlives: true,
    }
    client := &http.Client{
        Transport: transport,
    }
    resp, err := client.Get(url)
    if err != nil {
        fmt.Println(err)
    }
    defer resp.Body.Close()

    //copy the relevant headers. If you want to preserve the downloaded file name, extract it with go's url parser.
    w.Header().Set("Content-Disposition", "form-data; filename=Wiki.png")
    w.Header().Set("Content-Type", r.Header.Get("Content-Type"))
    w.Header().Set("Content-Length", …
Run Code Online (Sandbox Code Playgroud)

http download go web

2
推荐指数
1
解决办法
2593
查看次数

标签 统计

download ×1

go ×1

http ×1

web ×1