1
다중 파트 양식 파일을 읽어야합니다. 나는 사용자 정의 req obj를 http.request 객체가 아닌 handler 함수에 전달하고 있는데, Gorilla Mux를 사용하고 있습니다.
다중 파일 업로드 : FileHeaders 처리 방법
func handlerFunc(w http.ResponseWriter, cR *custReqObj)
내가 이런 식으로 접근하고 있습니다 :
내가 요청 객체를 해달라고 때문에fileHeaders := cR.MultipartForm.File["file"]
fileHeader := fileHeaders[0]
fileName := fileHeader.Filename
file, err := fileHeader.Open()
, 내가이 작업을 수행 할 수 없습니다
request.FormFile["file"]
을 처리기 서명이 같은 것입니다
나는 http.FormFile을 거쳤으며 첫 번째 파일 헤더도 리턴한다.
if r.MultipartForm != nil && r.MultipartForm.File != nil {
if fhs := r.MultipartForm.File[key]; len(fhs) > 0 {
f, err := fhs[0].Open()
return f, fhs[0], err
}
}
내 접근 방식은 정확하고 어떤 경우에는 여러 개의 파일 헤더를 고려해야합니다? 파일 헤더가 무엇인지, 그리고 멀티 파트 패키지가 golang에서 어떻게 작동하는지에 대해 알 수 있다면 정말 고맙겠습니다.
'custReqObj'를 어떻게 정의합니까? 사용자 정의 요청에'Request' 개체를 포함하거나 포함시켜야한다고 생각하기 때문에'http.Request'에 정의 된 메서드를 사용할 수 있습니다. [the doc] (https://golang.org/pkg/net/http/#Request.FormFile)에 설명 된대로, Request.FormFile은 첫 번째 파일 만 반환합니다. 파일이 여러 개 있거나 섹션이 여러 개인 경우 ['Request.MultipartReader'] (https://golang.org/pkg/net/http/#Request.MultipartReader)를 사용하여 각 파트를 읽은 다음 Part.FileName '또는'Part.FormName'을 사용하여 해당 데이터에 액세스하십시오. – putu