Fprintf с Servefile - PullRequest
       0

Fprintf с Servefile

0 голосов
/ 05 марта 2019
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 (). Добавить, но ничего не изменилось.Как я могу это исправить?

1 Ответ

0 голосов
/ 05 марта 2019

http.ServeFile добавляет Content-Type и Content-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 он не поддерживает запросы Range (для возобновления загрузки и т. д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...