Maison > développement back-end > Golang > le corps du texte

Comment personnaliser le type de contenu pour les champs de formulaire individuels dans le formulaire en plusieurs parties de Go ?

Patricia Arquette
Libérer: 2024-10-27 10:23:03
original
887 Les gens l'ont consulté

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

Personnalisation du type de contenu pour les champs de formulaire en plusieurs parties dans Go

Cette question concerne la personnalisation du type de contenu pour les champs de formulaire individuels au sein d'un formulaire en plusieurs parties formulaire créé à l’aide du package Go mime/multipart. Bien que le code d'origine crée le formulaire en plusieurs parties, il suppose un type de contenu par défaut « application/octet-stream ». L'objectif est de définir un type de contenu spécifique pour un champ spécifique, tel que "audio/wav;rate=8000" pour un fichier audio.

Le package mime/multipart natif ne fournit pas de prise en charge explicite pour la configuration le Content-Type pour les champs individuels. Cependant, une implémentation personnalisée peut être utilisée pour y parvenir.

<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>
Copier après la connexion

Cette fonction crée une nouvelle partie de formulaire avec le type de contenu souhaité. Le code original peut être modifié pour utiliser cette fonction :

<code class="go">audioFile, _ := CreateAudioFormFile(writer, "helloWorld.wav")
io.Copy(audioFile, file)</code>
Copier après la connexion

Maintenant, l'API recevra le formulaire en plusieurs parties avec le Content-Type approprié pour le fichier audio. Les données du formulaire résultant ressembleront à ce qui suit :

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

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!