func UploadFileHandler(svcCtx *svc.ServiceContext) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
reader, err := r.MultipartReader()
if err != nil {
fmt.Println(err)
httpx.ErrorCtx(r.Context(), w, err)
}
for {
part, err := reader.NextPart()
if err == io.EOF {
break
}
fmt.Printf("FileName=[%s], FormName=[%s]\n", part.FileName(), part.FormName())
if part.FileName() == "" { // 普通表单字段
dst := strings.Builder{}
_, _ = io.Copy(&dst, part)
fmt.Printf("FormData=[%s] filedName=[%s]\n", dst.String(), part.FormName())
} else { // 文件字段
dst, _ := os.Create("./" + part.FileName() + ".upload")
defer dst.Close()
_, _ = io.Copy(dst, part)
}
}
}
}
Golang http包实现文件上传
于 2023-04-07 16:59:33 首次发布