Go でマルチパート フォーム フィールドの Content-Type を設定する
Web 開発の領域では、多くの場合、特定のコンテンツを含むファイルをアップロードする必要があります。種類。ただし、Go のデフォルトのマルチパート フォーム ハンドラーは、すべてのファイルのコンテンツ タイプを「application/octet-stream」に設定するため、これが常に適切であるとは限りません。この記事では、開発者がマルチパート フォームの個々のフォーム フィールドのコンテンツ タイプをカスタマイズできるようにする、この問題の解決策を検討します。
提供されたコード スニペットは、必要なコンテンツ タイプを持つファイルをアップロードしようとしますが、指定できません。それを明示的に。解決策には、MIME ヘッダーに目的のコンテンツ タイプを含めるようにファイル作成関数を変更することが含まれます。
<code class="go">import ( "mime/multipart" "text/template" ) 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>
この関数は、名前が「」のフィールドのコンテンツ タイプを「audio/wav;rate=8000」に設定します。ファイル。"また、指定されたファイル名で「Content-Disposition」ヘッダーも構築します。
アップロード プロセスを完了するには、変更された関数によって作成されたライターにファイル データをコピーします。
<code class="go">audioFile, _ := CreateAudioFormFile(writer2, "helloWorld.wav") io.Copy(audioFile, file)</code>
これこの技術は、マルチパート フォーム フィールドのカスタム コンテンツ タイプを設定する簡単な方法を提供し、開発者が特定の API 要件を満たしたり、正確なファイル処理を保証したりできるようにします。
以上がGo でマルチパート フォーム フィールドにカスタム コンテンツ タイプを設定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。