如何在Go中更有效地从服务返回文件?例如,我收到一个像这样的文件
以下是我用来从服务接收文件的示例:
func (b *BenefitListHandler) UploadAppend(w http.ResponseWriter, r *http.Request) {
r.ParseMultipartForm(32 << 20)
file, handler, err := r.FormFile("benefitlistuploadfile")
if err != nil {
libhttp.EncodeErrorResponse(w, err, http.StatusInternalServerError)
return
}
defer file.Close()
f, err := os.OpenFile("./"+handler.Filename, os.O_WRONLY|os.O_CREATE, 0666)
if err != nil {
libhttp.EncodeErrorResponse(w, err, http.StatusInternalServerError)
return
}
defer f.Close()
io.Copy(f, file)
go b.readFileAppend("./" + handler.Filename)
libhttp.EncodeOKResponse(w, true)}
之后,我很困惑如何从该请求发送另一个文件,如二进制文件,以改善时间和消耗。
答案 0 :(得分:0)
在查看有关问题的信息后,我得到了解决方案
指定一个浏览器,它是将该标题放入响应的文件:
w.Header()。设置(“内容 - 处置”,“附件; 文件名= NameOfFile“)
之后我用ioutil读取文件:
files,err:= ioutil.ReadFile(result)
最后我使用http.ResponseWriter将文件的[]字节写入响应
w.Write(文件)