求助,用.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
讨论数量: 1

报错贴出来

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!