在Go 中為多部分錶單欄位設定內容類型標頭
在提交帶有檔案上傳的多部分錶單時,需要指定內容- 輸入文件欄位的標頭,以確保接收API 進行正確處理。雖然使用 net/http 為整個請求設定全域標頭很簡單,但為多部分錶單欄位設定單獨的標頭已被證明具有挑戰性。
為了克服這個問題,可以使用自訂函數來建立具有明確內容的表單欄位-輸入標頭:
<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>
此函數將多部分編寫器和檔案名稱作為輸入,並傳回一個可以寫入檔案資料的io.Writer。實作的標頭根據需要設定 Content-Disposition 和 Content-Type。
要為特定的多部分錶單字段設定Content-Type,請使用自訂函數,如下所示:
<code class="go">audioFile, _ := CreateAudioFormFile(writer, "helloWorld.wav") io.Copy(audioFile, file)</code>
這種方法有效地允許為各個多部分錶單字段設定內容類型,使開發人員能夠無縫處理具有特定內容類型要求的文件上傳。
以上是如何在 Go 中為多部分錶單欄位設定特定的內容類型標頭?的詳細內容。更多資訊請關注PHP中文網其他相關文章!