gpt4 book ai didi

csv - Fprintf 与 Servefile

转载 作者:数据小太阳 更新时间:2023-10-29 03:20:20 26 4
gpt4 key购买 nike

func examp(w http.ResponseWriter, req *http.Request){
text:="hi"
fmt.Fprintf(w,"%d \n",text)

http.ServeFile(w, req, "./sample.csv")
}

我不能将 http.servefile 与 fmt.Fprintf 一起使用,总是使用第一个。我试过 w.Header().add 但没有任何改变。我该如何解决?

最佳答案

http.ServeFile 添加Content-TypeContent-Length 并写入文件头。这必须在您写入 http.ResponseWriter 之前发生。

您的解决方案可能是避免使用 http.ServeFile 并使用 io.Copy 手动写入文件:

func example(w http.ResponseWriter, req *http.Request) {
// Write some headers.
w.Header.Set("Content-Type", mime.TypeByExtension(filepath.Ext(name)))

// Write your content here.
fmt.Fprint(w, someContent)

// Write the file.
fileName := "sample.csv"
f, err := io.Open(fileName)
// check err
_, err = io.Copy(w, f)
// check err
}

io.Copy 的缺点是它不支持范围请求(用于恢复下载等)

关于csv - Fprintf 与 Servefile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54998251/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com