Golang服务响应文件

时间:2017-09-12 00:05:45

标签: rest go

如何在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)}

之后,我很困惑如何从该请求发送另一个文件,如二进制文件,以改善时间和消耗。

1 个答案:

答案 0 :(得分:0)

在查看有关问题的信息后,我得到了解决方案

指定一个浏览器,它是将该标题放入响应的文件:

  

w.Header()。设置(“内容 - 处置”,“附件;   文件名= NameOfFile“)

之后我用ioutil读取文件:

  

files,err:= ioutil.ReadFile(result)

最后我使用http.ResponseWriter将文件的[]字节写入响应

  

w.Write(文件)