ダウンロードファイルボタンをクリックしたときに送信するファイルを保存するために、ブラウザにファイルの保存ダイアログボックスを表示または開くようにします。ダウンロード用ファイルをダウンロードするときにクライアントがファイルを保存するダイアログを開く方法
私のサーバー側のコードは:あなたは、クライアント側で保存する応答をする場合
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", r.Header.Get("Content-Length"))
//dialog.File().Filter("XML files", "xml").Title("Export to XML").Save()
//stream the body to the client without fully loading it into memory
io.Copy(w, resp.Body)
}
:
は、関連の質問を参照してください。 – zerkms
私は "添付ファイル"を設定しようとしましたが、ブラウザからダイアログを表示しません – cuong
また、悪い "ソース"からコンテンツタイプと長さを設定しました。下の私の答えを見てください。 – icza