问题是什么
我有一个带有图片的网址,我想在帖子请求中发送图片。有没有办法在不在本地下载文件的情况下执行此操作?
我尝试了什么
通常我会下载图像,发送图像并删除文件。还有更好的方法吗?
response, e := http.Get(url)
if e != nil {
log.Fatal(e)
}
writer := multipart.NewWriter(body)
part, err := writer.CreateFormFile(paramName, filepath.Base(path))
if err != nil {
return nil, err
}
_, err = io.Copy(part, file)
答案 0 :(得分:2)
您不需要创建临时文件。请注意,http.Request
需要io.Reader
(或io.ReadCloser
),并且由于response.Body
是io.ReadCloser
,因此您可以直接从现有的HTTP响应正文中读取你以前的请求。
req, err := http.NewRequest("POST", url, response.Body)
对于分段上传,您只需直接从原始HTTP GET请求的响应正文向您正在使用的编写者调用multipart.CreatePart()
然后io.Copy()
。你还不需要临时档案。