I have the simplest form to upload files:

<form enctype="multipart/form-data" method="post"> <p><input type="file" name="f"> <input type="submit" value="Отправить" multiple></p> </form> 

Go code that loads only the first file:

 r.ParseMultipartForm(32 << 20) file, handler, err := r.FormFile("f") if err != nil { fmt.Println(err) return } defer file.Close() fmt.Fprintf(w, "%v", handler.Header) f, err := os.OpenFile("./test/"+handler.Filename, os.O_WRONLY|os.O_CREATE, 0666) if err != nil { fmt.Println(err) return } defer f.Close() io.Copy(f, file) 

How to download all selected files at once?

    1 answer 1

    Decided as follows:

     m, err := r.MultipartReader() if err != nil { fmt.Println(err) } for { part, err := m.NextPart() if err == io.EOF { break } if part.FileName() == "" { continue } dst, err := os.Create("./test/" + part.FileName()) if err != nil { fmt.Println(err) } io.Copy(dst, part) } 

    Original