func uploadHandler(w http.ResponseWriter, r *http.Request) { r.ParseMultipartForm(32 << 20) // parse up to 32 MB of data file, handler, err := r.FormFile("file") // retrieve the uploaded file if err != nil { // handle error } defer file.Close() // process the file data fmt.Fprintf(w, "uploaded file: %s", handler.Filename) }
func formHandler(w http.ResponseWriter, r *http.Request) { r.ParseMultipartForm(32 << 20) // parse up to 32 MB of data name := r.FormValue("name") // retrieve the "name" field age := r.PostFormValue("age") // retrieve the "age" field occupation := r.FormValue("occupation") // retrieve the "occupation" field // process the form data fmt.Fprintf(w, "name=%s, age=%s, occupation=%s", name, age, occupation) }In this example, we first call the ParseMultipartForm function with a maximum size of 32 MB to parse the HTTP request body. We then extract individual form fields using the FormValue and PostFormValue functions and process their data before sending a response. Overall, Request.ParseMultipartForm is a useful function in the Go net/http package for extracting data from HTTP POST requests with multipart/form-data content type.