亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

去如何響應csv文件?

去如何響應csv文件?

Go
慕標5832272 2022-09-12 16:16:54
我正在 Go 中創建一個服務器,我想使用 CSV 文件進行響應。我寫了以下內容,這不會導致瀏覽器下載CSV文件。如何提示瀏覽器下載 CSV 文件?import "github.com/gocarina/gocsv"type Test struct {    ID   int    Name string    Delete string}router.Get("/test", func(writer http.ResponseWriter, request *http.Request) {    writer.WriteHeader(http.StatusOK)    tests := []*Test{        {            ID:   1,            Name: "a",            Delete: "delete",        },        {            ID:   2,            Name: "b",            Delete: "delete",        },    }    w := multipart.NewWriter(writer)    ww, err := w.CreateFormFile("file.csv", "file.csv")    if err != nil {        logger.Error("CreateFormfile", zap.Error(err))    }    gocsv.Marshal(tests, ww)})
查看完整描述

1 回答

?
繁華開滿天機

TA貢獻1816條經驗 獲得超4個贊

如果要告訴瀏覽器 將響應顯示為要下載的文件,則可以使用內容處置標頭:


rw.Header().Add("Content-Disposition", `attachment; filename="test.csv"`)

就輸出CSV文檔本身而言,我不確定您試圖通過多部分編碼進行響應來實現什么,但您應該將CSV文件直接封送到原始HTTP響應編寫器中:


router.Get("/test", func(rw http.ResponseWriter, req *http.Request) {


        tests := []*Test{

            {

                ID:   1,

                Name: "a",

                Delete: "delete",

            },

            {

                ID:   2,

                Name: "b",

                Delete: "delete",

            },

        }


        gocsv.Marshal(tests, rw)


})


查看完整回答
反對 回復 2022-09-12
  • 1 回答
  • 0 關注
  • 76 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號