Dalam Go, kami boleh menggunakan rangka kerja Gin untuk mengendalikan permintaan HTTP dan mengikat data kepada struktur permintaan tersuai. Untuk menerima kedua-dua data JSON dan imej dalam permintaan data berbilang bahagian/borang tunggal, kami boleh menentukan pengendali permintaan berikut:
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 // ... }
Untuk menghantar permintaan dengan kedua-duanya Data JSON dan imej, gunakan jenis kandungan berbilang bahagian/data bentuk. Badan permintaan hendaklah distrukturkan seperti berikut:
--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--
Atas ialah kandungan terperinci Bagaimana Mengendalikan JSON dan Muat Naik Imej Secara serentak dalam Rangka Kerja Go Gin?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!