Golang 및 net/http를 사용하여 업로드된 파일 수신
HTTP 서버로 작업할 때 파일 업로드를 처리하는 것이 일반적입니다. Go에서는 net/http 패키지를 사용하여 업로드된 파일을 수신하고 처리하도록 엔드포인트를 설정할 수 있습니다.
다음 코드 조각을 고려하세요.
package main import ( "fmt" "github.com/gorilla/mux" "net/http" ) func main() { ... // Assuming you already have a router setup, add the following: router. Path("/upload"). Methods("POST"). HandlerFunc(uploadFile) ... }
uploadFile 함수 내부에는 다음이 필요합니다. 요청에서 업로드된 파일을 구문 분석하려면:
func uploadFile(w http.ResponseWriter, r *http.Request) { err := r.ParseMultipartForm(5 * 1024 * 1024) if err != nil { panic(err) } // Get the file from the form file, header, err := r.FormFile("file") if err != nil { panic(err) } ... }
파일 객체는 업로드된 파일을 나타내고 헤더는 다음과 같은 파일에 대한 정보를 제공합니다. 파일 이름과 크기로. 그런 다음 필요에 따라 파일 콘텐츠로 작업할 수 있습니다.
예를 들어 파일을 디스크에 저장할 수 있습니다.
f, err := os.Create(header.Filename) if err != nil { log.Fatal(err) } defer f.Close() if _, err := io.Copy(f, file); err != nil { log.Fatal(err) } ...
또는 파일 콘텐츠를 직접 처리할 수도 있습니다.
defer file.Close() data, err := ioutil.ReadAll(file) if err != nil { log.Fatal(err) } fmt.Println(string(data)) ...
이런 방법으로 Go의 net/http 패키지를 사용하여 업로드된 파일을 받고 처리할 수 있습니다.
위 내용은 net/http를 사용하여 Go에서 업로드된 파일을 수신하고 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!