Comment modifier les en-têtes de type de contenu pour les formulaires en plusieurs parties dans Go
Dans Go, vous devrez peut-être modifier le type de contenu en-tête pour des champs spécifiques dans un formulaire en plusieurs parties. Bien que le package mime/multipart vous permette de créer facilement des formulaires en plusieurs parties, il ne fournit pas de moyen direct de définir des en-têtes Content-Type pour des champs individuels.
Pour surmonter cette limitation, vous pouvez implémenter une fonction personnalisée comme la suivant :
<code class="go">import ( "mime/multipart" "text/template" ) func CreateAudioFormFile(writer *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 writer.CreatePart(h) }</code>
Cette fonction vous permet de créer un champ de formulaire avec l'en-tête Content-Type souhaité :
<code class="go">writer2 := multipart.NewWriter(buf) audioFile, _ := CreateAudioFormFile(writer2, "helloWorld.wav") io.Copy(audioFile, file)</code>
Ce code générera un formulaire en plusieurs parties avec les en-têtes suivants :
--0c4c6b408a5a8bf7a37060e54f4febd6083fd6758fd4b3975c4e2ea93732 Content-Disposition: form-data; name="file"; filename="helloWorld.wav" Content-Type: audio/wav;rate=8000 --0c4c6b408a5a8bf7a37060e54f4febd6083fd6758fd4b3975c4e2ea93732--
N'oubliez pas d'écrire les données du fichier dans le champ après l'avoir créé, comme dans l'exemple original fourni.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!