]> Sergey Matveev's repositories - uploader.git/commitdiff
Let's play with templates and FileFieldName
authorSergey Matveev <stargrave@stargrave.org>
Mon, 8 Jan 2018 18:59:28 +0000 (21:59 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Mon, 8 Jan 2018 18:59:28 +0000 (21:59 +0300)
src/uploader/main.go

index a18a81916396aefede22351cf552f11190081527..74be1fe75c098b090e780996e964c1957e6e6e19 100644 (file)
@@ -10,6 +10,7 @@ import (
        "encoding/hex"
        "flag"
        "fmt"
+       "html/template"
        "io"
        "log"
        "net"
@@ -22,17 +23,24 @@ import (
 )
 
 const (
-       WriteBufSize = 1 << 20
+       WriteBufSize  = 1 << 20
+       FileFieldName = "fileupload"
 )
 
-func upload(w http.ResponseWriter, r *http.Request) {
-       log.Println(r.RemoteAddr, "connected")
-       if r.Method == http.MethodGet {
-               w.Write([]byte(`<html>
+var (
+       Index = template.Must(template.New("index").Parse(`<html>
 <head><title>Upload</title></head><body>
 <form enctype="multipart/form-data" action="/upload/" method="post">
-<input type="file" name="fileupload" /><input type="submit" />
+<input type="file" name="{{.}}" /><input type="submit" />
 </form></body></html>`))
+)
+
+func upload(w http.ResponseWriter, r *http.Request) {
+       log.Println(r.RemoteAddr, "connected")
+       if r.Method == http.MethodGet {
+               if err := Index.Execute(w, FileFieldName); err != nil {
+                       log.Println(r.RemoteAddr, err)
+               }
                return
        }
        mr, err := r.MultipartReader()
@@ -45,7 +53,7 @@ func upload(w http.ResponseWriter, r *http.Request) {
                log.Println(r.RemoteAddr, err)
                return
        }
-       if p.FormName() != "fileupload" {
+       if p.FormName() != FileFieldName {
                log.Println(r.RemoteAddr, "non file form field")
                return
        }