So bearbeiten Sie Inhaltstyp-Header für mehrteilige Formulare in Go
In Go müssen Sie möglicherweise den Inhaltstyp ändern Kopfzeile für bestimmte Felder in einem mehrteiligen Formular. Mit dem Paket „mime/multipart“ können Sie zwar problemlos mehrteilige Formulare erstellen, es bietet jedoch keine direkte Möglichkeit, Content-Type-Header für einzelne Felder festzulegen.
Um diese Einschränkung zu überwinden, können Sie eine benutzerdefinierte Funktion wie die implementieren Folgendes:
<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>
Mit dieser Funktion können Sie ein Formularfeld mit dem gewünschten Content-Type-Header erstellen:
<code class="go">writer2 := multipart.NewWriter(buf) audioFile, _ := CreateAudioFormFile(writer2, "helloWorld.wav") io.Copy(audioFile, file)</code>
Dieser Code generiert ein mehrteiliges Formular mit den folgenden Headern:
--0c4c6b408a5a8bf7a37060e54f4febd6083fd6758fd4b3975c4e2ea93732 Content-Disposition: form-data; name="file"; filename="helloWorld.wav" Content-Type: audio/wav;rate=8000 --0c4c6b408a5a8bf7a37060e54f4febd6083fd6758fd4b3975c4e2ea93732--
Vergessen Sie nicht, die Dateidaten nach der Erstellung in das Feld zu schreiben, wie im Originalbeispiel.
Das obige ist der detaillierte Inhalt vonWie kann ich in Go benutzerdefinierte Content-Type-Header für einzelne Felder in einem mehrteiligen Formular festlegen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!