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--
以上がGo Gin フレームワークで JSON と画像のアップロードを同時に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。