【问题标题】:Read request payload in Go?在 Go 中读取请求有效负载?
【发布时间】:2014-09-23 13:38:26
【问题描述】:

我正在使用文件上传器,需要请求有效负载中的详细信息来裁剪它。

func Upload(w http.ResponseWriter, r *http.Request) {
    reader, err := r.MultipartReader()
    if err != nil {
        http.Error(w, err.Error(), http.StatusInternalServerError)
        return
    }
    //copy each part to destination.
    for {
        part, err := reader.NextPart()
        if err == io.EOF {
            break
        }
        if part.FormName() == "avatar_data"{
           // Read the content in "avatar_data" how?
        }
        if part.FileName() == "" {
            continue
        }
        dst, err := os.Create("/Users/macadmin/test/" + part.FileName())
        defer dst.Close()
        if err != nil {
            http.Error(w, err.Error(), http.StatusInternalServerError)
            return
        }
        if _, err := io.Copy(dst, part); err != nil {

            http.Error(w, err.Error(), http.StatusInternalServerError)
            return
        }
    }
    img, _ := imaging.Open("/Users/macadmin/test/cry3.jpg")
    if err != nil {
        panic(err)
    }

    rect := image.Rect(0, 0, 200, 500)
    // rect := image.Rectangle{20,20}
    dst := imaging.Crop(img, rect)
    err = imaging.Save(dst, "/Users/macadmin/test/cry4.jpg")
    if err != nil {
        panic(err)
    }
    //display success message.
}

我没有 10 个代表来发布 POST 请求的图像,但它有

内容处置:表单数据;名称="头像数据" {"x":528,"y":108,"height":864,"width":864}

所以从 avatar_data 我需要x、y、height 和width。我知道我必须对 JSON 进行编组,但我不确定如何达到这一点?

【问题讨论】:

    标签: http post go multipart


    【解决方案1】:

    multipart.Part 实现了io.Reader 接口。

    if part.FormName() == "avatar_data" {
        j, err := ioutil.ReadAll(part)
        if err != nil {
            //do something
        }
        //j == []byte(`{"x":528,"y":108,"height":864,"width":864}`), do something with it.
    }
    

    【讨论】:

      猜你喜欢
      • 2013-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-09
      • 1970-01-01
      • 2020-04-30
      • 1970-01-01
      相关资源
      最近更新 更多