Configuration des en-têtes de type de contenu pour les champs de formulaire en plusieurs parties dans Go
Lors de la soumission de formulaires en plusieurs parties avec téléchargements de fichiers, il devient nécessaire de spécifier le contenu -Tapez l'en-tête des champs du fichier pour garantir une gestion correcte par l'API de réception. Bien que la définition d'en-têtes globaux pour l'ensemble de la requête à l'aide de net/http soit simple, la définition d'en-têtes individuels pour les champs de formulaire en plusieurs parties s'est avérée difficile.
Pour surmonter ce problème, une fonction personnalisée peut être utilisée pour créer des champs de formulaire avec un contenu explicite. Tapez les en-têtes :
<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>
Cette fonction prend le rédacteur en plusieurs parties et le nom de fichier en entrée et renvoie un io.Writer dans lequel les données du fichier peuvent être écrites. L'en-tête implémenté définit le Content-Disposition et le Content-Type comme vous le souhaitez.
Pour définir le Content-Type pour un champ de formulaire en plusieurs parties spécifique, utilisez la fonction personnalisée comme suit :
<code class="go">audioFile, _ := CreateAudioFormFile(writer, "helloWorld.wav") io.Copy(audioFile, file)</code>
Cette approche permet effectivement de définir le type de contenu pour des champs de formulaire en plusieurs parties individuels, permettant aux développeurs de gérer de manière transparente les téléchargements de fichiers avec des exigences de type de contenu spécifiques.
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!