drhg24275 2014-07-31 14:39
浏览 59
已采纳

在Go中读取请求有效载荷?

I'm using a file uploader and need details from the request payload to crop it.

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.
}

I don't have 10 rep to post the image of the POST request, but it has

Content-Disposition: form-data; name="avatar_data"

{"x":528,"y":108,"height":864,"width":864}

So from avatar_data I need the x, y, height, and width. I know I'll have to marshal the JSON but I'm not sure how to get to that point?

  • 写回答

1条回答 默认 最新

  • doyhq66282 2014-07-31 14:44
    关注

    multipart.Part implements the io.Reader interface.

    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.
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)