package main import ( "fmt" "io" "log" "net/http" "os" ) // func getRoot(w http.ResponseWriter, r *http.Request) { // fmt.Printf("Received connection\n") // file, err := os.Open("./index.html") // if err != nil { // log.Printf("Error happened opening index.html: %v\n", err) // } // defer file.Close() // data, err := io.ReadAll(file) // if err != nil { // log.Printf("Error happened reading data: %v\n", err) // } // fmt.Fprint(w, string(data)) // } func uploadFile(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, "You have uploaded something") file, header, err := r.FormFile("file") if err != nil { log.Printf("Error happened receiving file: %v\n", err) } _, err = os.Stat("./temp/") if os.IsNotExist(err) { os.Mkdir("./temp/", 0700) } f, err := os.OpenFile("./temp/"+header.Filename, os.O_WRONLY|os.O_CREATE, 0660) if err != nil { log.Printf("Error happened opening file: %v\n", err) } log.Printf("[%v] Received file \"%v\" from %v\n", r.RemoteAddr, header.Filename, r.UserAgent()) io.Copy(f, file) defer file.Close() } func main() { http.Handle("/", http.FileServer(http.Dir("./assets"))) http.HandleFunc("/api/upload", uploadFile) fmt.Println("Listening on port 8080...") err := http.ListenAndServe(":8080", nil) if err != nil { log.Fatal(err) } }