多部分請求經常用於文件上傳,除了文件之外,還需要提交其他表單資料。讓我們看看如何使用 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 上的CreateFormFile 建立一個專門用於檔案的表單欄位。創建後,我們可以使用 io.Copy 將文件內容寫入此表單欄位。
以上是如何使用 Go 的'multipart/form-data”發布文件和表單資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!