From 2e8e63e4a719a2b3adeeed2f1f54a8f3388ac2e4 Mon Sep 17 00:00:00 2001 From: horus_arch Date: Tue, 12 May 2015 20:57:04 +0200 Subject: Add upload form. --- main.go | 45 ------------------------- template.go | 58 +++++++++++++++++++++++++++++--- upload.go | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 163 insertions(+), 50 deletions(-) create mode 100644 upload.go diff --git a/main.go b/main.go index 452ed35..c17edd1 100644 --- a/main.go +++ b/main.go @@ -3,11 +3,9 @@ package main import ( "flag" "fmt" - "io" "log" "net/http" "os" - "strings" ) func accessLog(h http.Handler, quiet bool) http.Handler { @@ -21,49 +19,6 @@ func accessLog(h http.Handler, quiet bool) http.Handler { return http.HandlerFunc(fn) } -func uploadHandler(dir string, quiet bool) http.Handler { - fn := func(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Server", "uhttpd") - file, header, err := r.FormFile("file") - - if err != nil { - w.WriteHeader(500) - w.Write([]byte(err.Error())) - log.Println("ERROR", err.Error()) - return - } - - defer file.Close() - - if !strings.HasSuffix(dir, "/") { - dir = dir + "/" - } - - out, err := os.Create(dir + header.Filename) - if err != nil { - w.WriteHeader(500) - w.Write([]byte(err.Error())) - log.Println("ERROR", err.Error()) - return - } - - defer out.Close() - _, err = io.Copy(out, file) - if err != nil { - w.WriteHeader(500) - w.Write([]byte(err.Error())) - log.Println("ERROR", err.Error()) - return - } - - if !quiet { - log.Println(r.Method, r.URL.Path, header.Filename, r.RemoteAddr) - } - w.Write([]byte("Uploaded " + header.Filename)) - } - return http.HandlerFunc(fn) -} - func main() { ip_f := flag.String("ip", "0.0.0.0", "IP adress to listen on.") port_f := flag.String("port", "3000", "Port to listen on.") diff --git a/template.go b/template.go index 017690d..124854c 100644 --- a/template.go +++ b/template.go @@ -103,10 +103,6 @@ func execTemplate(w http.ResponseWriter, r *http.Request, data string) { } -func NewTemplateHandler(handler http.Handler, allowedHost string) *TemplateHandler { - return &TemplateHandler{handler: handler} -} - func getTemplate() string { return ` @@ -164,7 +160,59 @@ func get404() string {
Please check for typos in your url.
+ Go back to root + + + + +