package bcd_parser import ( "fmt" "io/ioutil" "net/http" "github.com/mm2srv/smm2_parsing" ) func HandlePage(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "text/html; charset=utf-8") page := `
` w.Write([]byte(page)) } func HandleProcess(w http.ResponseWriter, r *http.Request) { maxSize := int64(0x5c000 * 2) r.Body = http.MaxBytesReader(w, r.Body, maxSize) if err := r.ParseMultipartForm(maxSize); err != nil { fmt.Printf("removeUploadCheck error parsing form %v\n", err) http.Error(w, err.Error(), http.StatusBadRequest) return } file, fileHeader, err := r.FormFile("file") if err != nil { http.Error(w, err.Error(), http.StatusBadRequest) return } defer file.Close() rawBCD, err := ioutil.ReadAll(file) if err != nil { http.Error(w, err.Error(), http.StatusBadRequest) return } newBCD, err := smm2_parsing.RemoveUploadedFlag(rawBCD) if err != nil { fmt.Printf("removeUploadCheck error %v\n", err) http.Error(w, err.Error(), http.StatusBadRequest) return } w.Header().Set("content-disposition", fmt.Sprintf("attachment; filename=\"%s\"", fileHeader.Filename)) w.Write(newBCD) }