In Go können wir das Gin-Framework verwenden, um HTTP-Anfragen zu verarbeiten und Daten an benutzerdefinierte Anfragestrukturen zu binden. Um sowohl JSON-Daten als auch ein Bild in einer einzigen Multipart-/Formulardatenanfrage zu empfangen, können wir den folgenden Anfragehandler definieren:
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 // ... }
Um eine Anfrage mit beiden zu senden JSON-Daten und ein Bild verwenden einen Multipart/Form-Data-Inhaltstyp. Der Anforderungstext sollte wie folgt strukturiert sein:
--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--
Das obige ist der detaillierte Inhalt vonWie handhabe ich JSON und das Hochladen von Bildern gleichzeitig in einem Go Gin Framework?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!