Heim > Backend-Entwicklung > Golang > Wie handhabe ich JSON und das Hochladen von Bildern gleichzeitig in einem Go Gin Framework?

Wie handhabe ich JSON und das Hochladen von Bildern gleichzeitig in einem Go Gin Framework?

DDD
Freigeben: 2024-11-29 04:12:09
Original
666 Leute haben es durchsucht

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

Empfangen von JSON-Daten und Bildern in Go mit Gin

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
    // ...
}
Nach dem Login kopieren

Beispielanfrage:

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--
Nach dem Login kopieren

Hinweise:

  • Die Bindungs-Tags stellen sicher, dass die entsprechende Feldvalidierung erfolgt.
  • c.ShouldBindWith explizit bindet die Anforderungsdaten mithilfe der FormMultipart-Bindungs-Engine, die für mehrteilige/Formulardatenanforderungen konzipiert ist.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage