Permintaan berbilang bahagian kerap digunakan untuk muat naik fail, di mana bersama-sama dengan fail, data borang tambahan perlu diserahkan. Mari lihat bagaimana kita boleh menangani perkara ini menggunakan pakej mime/multipart dan http Go.
Pertimbangkan borang HTML berikut:
<form action="/multipart" enctype="multipart/form-data" method="POST"> <label for="file">Please select a File</label> <input>
Dalam Go, kami boleh menghantar permintaan berbilang bahagian ini seperti berikut:
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 }
Kunci untuk menghantar fail dalam permintaan berbilang bahagian terletak pada penggunaan CreateFormFile pada *multipart.Writer untuk mencipta medan borang khusus untuk fail. Setelah dibuat, kita boleh menggunakan io.Copy untuk menulis kandungan fail ke dalam medan borang ini.
Atas ialah kandungan terperinci Bagaimanakah cara saya MENYATAKAN Fail dan Data Borang menggunakan `berbilang bahagian/data-bentuk` Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!