マルチパート リクエストはファイルのアップロードに頻繁に使用され、ファイルとともに追加のフォーム データを送信する必要があります。 Go の mime/multipart および http パッケージを使用してこれにどのように取り組むことができるかを見てみましょう。
次の HTML フォームについて考えてみましょう:
<form action="/multipart" enctype="multipart/form-data" method="POST"> <label for="file">Please select a File</label> <input>
Go では、このマルチパート リクエストを次のように送信できます。
import ( "bytes" "io" "mime/multipart" "net/http" ) var buffer bytes.Buffer w := multipart.NewWriter(&buffer) // Write form fields w.CreateFormField("input1") w.WriteField("input1", "value1") // Prepare to write a file fd, err := os.Open("filename.dat") if err != nil { return err } // Create a form field for the file fw, err := w.CreateFormFile("file", fd.Name()) if err != nil { return err } // Copy file contents into form field if _, err := io.Copy(fw, fd); err != nil { return err } // Close writer w.Close() // Prepare request resp, err := http.Post(url, w.FormDataContentType(), &buffer) if err != nil { return err }
マルチパートリクエストでファイルを送信する鍵は、 *multipart.Writer は、ファイル専用のフォーム フィールドを作成します。作成したら、io.Copy を使用してファイルの内容をこのフォーム フィールドに書き込むことができます。
以上がGo の「multipart/form-data」を使用してファイルとフォーム データを POST するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。