ホームページ  >  記事  >  バックエンド開発  >  Go のマルチパート フォームの個々のフィールドにカスタム Content-Type ヘッダーを設定するにはどうすればよいですか?

Go のマルチパート フォームの個々のフィールドにカスタム Content-Type ヘッダーを設定するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-29 19:20:03239ブラウズ

How can I set custom Content-Type headers for individual fields in a multipart form in Go?

Go でマルチパート フォームの Content-Type ヘッダーを編集する方法

Go では、Content-Type を変更する必要がある場合があります。マルチパートフォームの特定のフィールドのヘッダー。 mime/multipart パッケージを使用すると、マルチパート フォームを簡単に作成できますが、個々のフィールドに Content-Type ヘッダーを設定する直接的な方法は提供されません。

この制限を克服するには、次のようなカスタム関数を実装できます。以下:

<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>

この関数を使用すると、目的の Content-Type ヘッダーを持つフォーム フィールドを作成できます:

<code class="go">writer2 := multipart.NewWriter(buf)
audioFile, _ := CreateAudioFormFile(writer2, "helloWorld.wav")
io.Copy(audioFile, file)</code>

このコードは、次のヘッダーを持つマルチパート フォームを生成します:

--0c4c6b408a5a8bf7a37060e54f4febd6083fd6758fd4b3975c4e2ea93732
Content-Disposition: form-data; name="file"; filename="helloWorld.wav"
Content-Type: audio/wav;rate=8000
--0c4c6b408a5a8bf7a37060e54f4febd6083fd6758fd4b3975c4e2ea93732--

提供された元の例のように、作成後にファイル データをフィールドに書き込むことを忘れないでください。

以上がGo のマルチパート フォームの個々のフィールドにカスタム Content-Type ヘッダーを設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。