Wie kann ich den Inhaltstyp für mehrteilige Formularfelder in Go anpassen?

Patricia Arquette
Freigeben: 2024-10-28 08:01:02
Original
795 Leute haben es durchsucht

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

Anpassen des Inhaltstyps für mehrteilige Formularfelder in Go

Das Senden mehrteiliger Formulare erfordert häufig die Angabe eines bestimmten Inhaltstyp-Headers für einzelne Felder. beispielsweise beim Hochladen einer Audiodatei. Das Multipart/Mime-Paket von Go bietet zwar eine bequeme Möglichkeit zum Erstellen mehrteiliger Formulare, ermöglicht jedoch nicht das Festlegen feldspezifischer Content-Type-Header.

Lösung

As Da es derzeit keine integrierte Unterstützung für diese Funktionalität gibt, kann eine benutzerdefinierte Lösung implementiert werden. Hier ist eine modifizierte Version der CreateFormFile-Funktion:

<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>
Nach dem Login kopieren

Verwendung

So verwenden Sie diese benutzerdefinierte Funktion:

<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>
Nach dem Login kopieren

Ausgabe

Dadurch wird ein mehrteiliges Formular mit den folgenden Metadaten generiert:

--0c4c6b408a5a8bf7a37060e54f4febd6083fd6758fd4b3975c4e2ea93732
Content-Disposition: form-data; name="file"; filename="helloWorld.wav"
Content-Type: audio/wav;rate=8000
[file data]
--0c4c6b408a5a8bf7a37060e54f4febd6083fd6758fd4b3975c4e2ea93732--
Nach dem Login kopieren

Auf diese Weise können Sie bei Verwendung von Multipart/Mime ganz einfach den Inhaltstyp für bestimmte Formularfelder festlegen Paket.

Das obige ist der detaillierte Inhalt vonWie kann ich den Inhaltstyp für mehrteilige Formularfelder in Go anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage