Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menyesuaikan Jenis Kandungan untuk Medan Borang Berbilang Bahagian dalam Go?

Bagaimana untuk Menyesuaikan Jenis Kandungan untuk Medan Borang Berbilang Bahagian dalam Go?

Patricia Arquette
Patricia Arquetteasal
2024-10-28 08:01:02795semak imbas

How to Customize Content-Type for Multipart Form Fields in Go?

Menyesuaikan Jenis Kandungan untuk Medan Borang Berbilang Bahagian dalam Go

Menghantar borang berbilang bahagian selalunya memerlukan penetapan pengepala Jenis Kandungan khusus untuk medan individu, seperti semasa memuat naik fail audio. Walaupun pakej berbilang bahagian/mim Go menyediakan cara yang mudah untuk mencipta borang berbilang bahagian, ia tidak membenarkan untuk menetapkan pengepala Jenis Kandungan khusus medan.

Penyelesaian

Sebagaimana pada masa ini tiada sokongan terbina dalam untuk fungsi ini, penyelesaian tersuai boleh dilaksanakan. Berikut ialah versi diubah suai bagi fungsi CreateFormFile:

<code class="go">func CreateAudioFormFile(w *multipart.Writer, filename string) (io.Writer, error) {
    h := make(textproto.MIMEHeader)
    h.Set("Content-Disposition", fmt.Sprintf(`form-data; name="%s"; filename="%s"`, "file", filename))
    h.Set("Content-Type", "audio/wav;rate=8000")
    return w.CreatePart(h)
}</code>

Penggunaan

Untuk menggunakan fungsi tersuai ini:

<code class="go">// Get file as bytes
file, err := os.Open("helloWorld.wav")
buf := new(bytes.Buffer)
writer := multipart.NewWriter(buf)

// Create multipart form field with custom Content-Type header
audioFile, _ := CreateAudioFormFile(writer, "helloWorld.wav")

// Copy file data to multipart form field
io.Copy(audioFile, file)
writer.Close()</code>

Output

Ini akan menjana borang berbilang bahagian dengan metadata berikut:

--0c4c6b408a5a8bf7a37060e54f4febd6083fd6758fd4b3975c4e2ea93732
Content-Disposition: form-data; name="file"; filename="helloWorld.wav"
Content-Type: audio/wav;rate=8000
[file data]
--0c4c6b408a5a8bf7a37060e54f4febd6083fd6758fd4b3975c4e2ea93732--

Dengan cara ini, anda boleh dengan mudah menetapkan Jenis Kandungan untuk medan borang tertentu apabila menggunakan berbilang bahagian/mim pakej.

Atas ialah kandungan terperinci Bagaimana untuk Menyesuaikan Jenis Kandungan untuk Medan Borang Berbilang Bahagian dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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