求助,用.NET/http 做一个两个文件分别两个参数上传的请求,一直无法成功。
一个请求多个上传文件
代码如下:
//打开文件句柄操作
firstFile, err := os.Open("/Users/cjh/Downloads/15727681022511079480.jpg")
if err != nil {
fmt.Println("error opening file1")
return
}
defer firstFile.Close()
secondFile, err := os.Open("/Users/cjh/Downloads/15727680893431079480.jpg")
if err != nil {
fmt.Println("error opening file2")
return
}
defer secondFile.Close()
bodyBuf := &bytes.Buffer{}
bodyWriter := multipart.NewWriter(bodyBuf)
firstImageWriter, err := bodyWriter.CreateFormFile("firstImage", "firstImage.jpg")
if err != nil {
fmt.Println("error writing to buffer")
return
}
_, err = io.Copy(firstImageWriter, firstFile)
if err != nil {
fmt.Printf("copy1 err:%v", err)
return
}
secondImageWriter, err := bodyWriter.CreateFormFile("secondImage", "secondImage.jpg")
if err != nil {
fmt.Println("error writing to buffer")
return
}
_, err = io.Copy(secondImageWriter, secondFile)
if err != nil {
fmt.Printf("copy2 err:%v", err)
return
}
request, err := http.NewRequest("POST", url, bodyBuf)
if err != nil {
log.Printf("post utils new request failed, err msg %s", err.Error())
return err, respBytes, httpLog
}
request.Header.Set("Content-Type", bodyWriter.FormDataContentType())
request.ContentLength = -1
defer bodyWriter.Close()
ocrResp, err := http.DefaultClient.Do(request)
if err != nil {
log.Printf("post utils do failed, err msg %s", err.Error())
return err, respBytes, httpLog
}
defer ocrResp.Body.Close()
resp_body, err := ioutil.ReadAll(ocrResp.Body)
if err != nil {
return
}
fmt.Println(ocrResp.Status)
fmt.Println(string(resp_body))
return
推荐文章: