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!