var (
body = &bytes.Buffer{}
writer = multipart.NewWriter(body)
)
b := dropboxAPI{
Path: "/" + name,
Mode: "add",
Autorename: true,
Mute: false,
}
header, err := json.Marshal(b)
if err != nil {
return nil, errors.New(fmt.Errorf("json marshal, err: %#v", err).Error())
}
resolvedURL, err := url.Parse(c.dbclient.ContentURL.String() + "/2/files/upload")
if err != nil {
fmt.Println(err)
}
p, err := writer.CreateFormFile("file", name)
if err != nil {
return nil, errors.New(fmt.Errorf("multipart creatformfile, err: %#v", err).Error())
}
_, err = io.Copy(p, r)
//writer.WriteField("data-binary", name)
err = writer.Close()
if err != nil {
return nil, errors.New(fmt.Errorf("multipart close, err: %#v", err).Error())
}
req, err := http.NewRequest(http.MethodPost, resolvedURL.String(), body)
//add headers for dropbox
req.Header.Add("Content-Type", writer.FormDataContentType())
req.Header.Add("Content-Type", "application/octet-stream")
req.Header.Add("Dropbox-API-Arg", string(header))
req.Header.Add("Cache-Control", "no-cache")
if err != nil {
return nil, errors.New(fmt.Errorf("new http request failed, resp: %#v", req).Error())
}
fmt.Println("Req: ", req.Header)
var data File
_, err = c.dbclient.Do(req, &data)
if err != nil {
return nil, err
}
However, when I download the file, the http headers were added to the file. Please see the image (upper right side). What could be causing this problem? Thanks