Go의 mime/multipart 및 http 패키지를 사용하여 멀티파트 양식을 보내는 맥락에서 다음과 같은 특정 문제가 발생할 수 있습니다. 문제 해결이 필요합니다. 파일 필드 생성과 관련된 구체적인 사례를 살펴보겠습니다.
다음 코드가 있고 텍스트 필드와 파일이 모두 포함된 다중 부분 양식을 보내려고 합니다.
func main() { // ... // Create a file field fw, err := w.CreateFormFile("file", "filename.dat") if err != nil { return err } // ... // Send the request resp, err := http.Post(url, w.FormDataContentType(), &buffer) if err != nil { return err } // ... }
그런데 파일 필드 Writer로 파일을 읽어오기 위해 Reader를 구하는 방법에 어려움을 겪고 계시나요? fw.
이 문제를 해결하려면 os.Open을 사용하여 파일을 열고 반환된 *os.File을 io.Writer로 CreateFormFile 함수에 전달해야 합니다. 수정된 코드는 다음과 같습니다.
import ( "bytes" "io" "mime/multipart" "net/http" "os" ) func main() { // ... // Open the file fd, err := os.Open("filename.dat") if err != nil { return err } // Create a file field fw, err := w.CreateFormFile("file", "filename.dat") if err != nil { return err } // Copy the file contents into the file field writer _, err = io.Copy(fw, fd) if err != nil { return err } // ... // Send the request resp, err := http.Post(url, w.FormDataContentType(), &buffer) if err != nil { return err } // ... }
이 수정을 통해 파일 내용이 멀티파트 양식에 올바르게 기록되어 텍스트 필드와 파일을 모두 성공적으로 보낼 수 있습니다.
위 내용은 Go를 사용하여 다중 부분/양식 데이터 POST 요청에서 파일 업로드를 올바르게 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!