首頁 > 後端開發 > Golang > 如何在 Go Gin 框架中同時處理 JSON 和映像上傳?

如何在 Go Gin 框架中同時處理 JSON 和映像上傳?

DDD
發布: 2024-11-29 04:12:09
原創
666 人瀏覽過

How to Handle JSON and Image Upload Simultaneously in a Go Gin Framework?

使用Gin 在Go 中接收JSON 資料和影像

在Go 中,我們可以使用Gin 框架來處理HTTP 請求並將資料綁定到自訂請求結構。要在單一multipart/form-data 請求中同時接收JSON 資料和影像,我們可以定義以下請求處理程序:

func UpdateProfile(c *gin.Context) {
    type request struct {
        Avatar      *multipart.FileHeader `form:"avatar" binding:"required"`
        User struct {
            Username    string `json:"username" binding:"required,min=4,max=20"`
            Description string `json:"description" binding:"required,max=100"`
        } `form:"user" binding:"required"`
    }

    var updateRequest request

    // Bind the request data to the request structure
    if err := c.ShouldBindWith(&updateRequest, binding.FormMultipart); err != nil {
        // Return an appropriate error response
        _ = c.AbortWithError(http.StatusBadRequest, err)
        return
    }

    // Handle the image
    // ...

    // Handle the JSON data
    // ...
}
登入後複製

範例請求:

發送包含兩者的請求JSON資料和圖像,使用multipart/form-data 內容類型。請求正文的結構應如下所示:

--boundary
Content-Disposition: form-data; name="avatar"; filename="profile.jpg"
Content-Type: image/jpeg
//... image data
--boundary
Content-Disposition: form-data; name="user"
Content-Type: application/json
{
    "username": "username",
    "description": "description"
}
--boundary--
登入後複製

註解:

  • 綁定標籤確保發生適當的欄位驗證。
  • c.ShouldBindWith 明確使用 FormMultipart 綁定引擎綁定請求數據,該引擎專為多部分/表單數據請求而設計。

以上是如何在 Go Gin 框架中同時處理 JSON 和映像上傳?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板