Rumah > pembangunan bahagian belakang > Golang > Bagaimana Mengendalikan JSON dan Muat Naik Imej Secara serentak dalam Rangka Kerja Go Gin?

Bagaimana Mengendalikan JSON dan Muat Naik Imej Secara serentak dalam Rangka Kerja Go Gin?

DDD
Lepaskan: 2024-11-29 04:12:09
asal
666 orang telah melayarinya

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

Menerima Data dan Imej JSON dalam Go Using Gin

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
    // ...
}
Salin selepas log masuk

Permintaan Contoh:

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--
Salin selepas log masuk

Nota:

  • Teg pengikat memastikan bahawa pengesahan medan yang sesuai berlaku.
  • c.ShouldBindWith secara eksplisit mengikat data permintaan menggunakan enjin pengikat FormMultipart, yang direka bentuk untuk data berbilang bahagian/bentuk permintaan.

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan