멀티파트 요청은 파일 업로드에 자주 사용되며 파일과 함께 추가 양식 데이터를 제출해야 합니다. 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`를 사용하여 파일 및 양식 데이터를 어떻게 POST합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!