Как прочитать бинарные данные из http.Request
Как мне прочитать бинарные данные из http запроса и записать их в файл.
func (s *server) handlePutAvatar(contentDir string) http.HandlerFunc{
return func(w http.ResponseWriter, r *http.Request){
var avatar []byte
n, err:= r.Body.Read(avatar)
}
Когда я пытаюсь прочитать бинарные данные указанным выше способом, в массив avatar читается 0 байт, при том что в заголоках видно, что тело не пустое
Ответы (1 шт):
Автор решения: Senior Pomidor
→ Ссылка
вам надо все тело читать. нужно постоянно проверять на ошибку, на io.EOF. вместо этого используйте ioutil.ReadAll
func (s *server) handlePutAvatar(contentDir string) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
if r.Body == nil {
w.WriteHeader(http.StatusBadRequest)
return
}
defer r.Body.Close()
avatar, err := ioutil.ReadAll(r.Body)
if err != nil {
w.WriteHeader(http.StatusUnprocessableEntity)
return
}
// avatar here is available to use
}
}