package main import ( "io" "net/http" "os" "strings" "time" ) func httpHandleFunc(urlPath string, filepath string, contentType string) { urlPath = strings.ToLower(urlPath) logger(readHttpYML() + "/" + urlPath + " <--> " + filepath + " <" + contentType + ">") http.HandleFunc("/"+urlPath, func(w http.ResponseWriter, r *http.Request) { logger(r.Method + " request -> " + readHttpYML() + "/" + urlPath + " <" + contentType + ">") w.Header().Add("Content-Type", contentType) io.WriteString(w, htmlReplacer(fileRead(filepath), urlPath)) }) } func httpHandleFuncWithPOST(urlPath string, filepath string, contentType string) { logger(readHttpYML() + "/" + urlPath + " <--> " + filepath + " <" + contentType + ">") s := new(submit) s.data = "null" http.HandleFunc("/"+urlPath, func(w http.ResponseWriter, r *http.Request) { if r.Method == "POST" { r.ParseMultipartForm(10 << 20) err := r.ParseMultipartForm(200000) errorPanic(err) formdata := r.MultipartForm files := formdata.File["media"] if filepath == "./web/pages/admin/dashboard.html" { title := formdata.Value["title"] description := formdata.Value["description"] media := formdata.File["media"] date := formdata.Value["date"] if title[0] != "" && description[0] != "" && media != nil && date[0] != "" { logger("----------------POST----------------") logger("title: " + title[0]) logger("descrtiption: " + description[0]) logger("media: " + string(len(media))) logger("files uploaded successfully : ") for i, _ := range files { file, err := files[i].Open() errorPanic(err) out, err := os.Create("./web/images/" + files[i].Filename) errorPanic(err, "unable to create the file '"+"./web/images/"+files[i].Filename+"' for writing. Check your write access privilege") _, err = io.Copy(out, file) errorPanic(err) logger("./web/images/" + files[i].Filename) } } logger("date: " + date[0]) logger("----------------POST END----------------") } } logger(r.Method + " request -> " + readHttpYML() + "/" + urlPath + " <" + contentType + ">") w.Header().Add("Content-Type", contentType) io.WriteString(w, htmlReplacer(fileRead(filepath), urlPath)) }) } func httpGetBody(url string) []byte { c := &http.Client{Timeout: 10 * time.Second} r, err := c.Get(url) errorPanic(err) defer r.Body.Close() var body []byte body, err = io.ReadAll(r.Body) errorPanic(err) return body }