package main import ( "bytes" _ "embed" "flag" "fmt" "io" "log" "net/http" "time" "git.ecogood.org/andreas.schroepfer/excelConverter/pkg/loader" ) //go:embed files/upload.htm var homepage []byte var ( flagPort = flag.String("p", ":2727", "port for the http-server") ) func main() { run() } func run() { mux := http.NewServeMux() mux.HandleFunc("/convert/", handleConvert) mux.HandleFunc("/", handleRoot) s := &http.Server{ Addr: *flagPort, Handler: mux, ReadTimeout: 10 * time.Second, WriteTimeout: 10 * time.Second, MaxHeaderBytes: 1 << 20, } fmt.Println("starting server at:") fmt.Printf("http://localhost%s/", *flagPort) log.Fatal(s.ListenAndServe()) } func handleRoot(w http.ResponseWriter, r *http.Request) { buf := bytes.NewBuffer(homepage) io.Copy(w, buf) } func handleConvert(w http.ResponseWriter, r *http.Request) { r.ParseMultipartForm(10 << 20) file, _, err := r.FormFile("myFile") if err != nil { fmt.Println("Error Retrieving the File") fmt.Println(err) return } defer file.Close() eBalance, err := loader.XLSX(file, nil) if err != nil { fmt.Fprintf(w, "convert errors
: %s", err) } eBalance.EncodeJSON(w) }