From b36aaeaac878b6a3d8351d4a941af5cc93341dd3 Mon Sep 17 00:00:00 2001 From: Julian T Date: Thu, 10 Sep 2020 22:54:37 +0200 Subject: Added file upload --- main.go | 11 ++++++++++- root.template | 5 +++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/main.go b/main.go index 74b38b5..e6c1def 100644 --- a/main.go +++ b/main.go @@ -92,6 +92,9 @@ func NewServer(conf *Config) *Server { s.mux = http.NewServeMux() s.mux.HandleFunc("/", s.httpRoot) s.mux.HandleFunc("/upload", s.httpUpload) + s.mux.Handle("/data/", http.StripPrefix("/data/", + http.FileServer(http.Dir(conf.DataPath)))) + s.conf = conf s.filestore = map[string][]string{} @@ -202,8 +205,10 @@ func (s *Server) httpRoot(w http.ResponseWriter, r *http.Request) { var page struct { Notes []note - Msg string + Msg string + Files *map[string][]string } + page.Files = &s.filestore err := s.db.SelectContext(r.Context(), &page.Notes, ` SELECT hash, name, location FROM notes WHERE available = True`) @@ -212,7 +217,9 @@ func (s *Server) httpRoot(w http.ResponseWriter, r *http.Request) { return } + s.fslock.RLock() s.renderTemplate(w, &page, "root.template") + s.fslock.RUnlock() } func (s *Server) httpUpload(w http.ResponseWriter, r *http.Request) { @@ -262,6 +269,8 @@ func (s *Server) httpUpload(w http.ResponseWriter, r *http.Request) { s.saveFile(hash, fname) s.httpLog(r, "Uploaded file %s", fname) + + http.Redirect(w, r, "/", http.StatusSeeOther) } func (s *Server) allocFile(hash string, t string) string { diff --git a/root.template b/root.template index e4f5104..74fbc0c 100644 --- a/root.template +++ b/root.template @@ -116,11 +116,16 @@ Ref Navn + Files {{ range .Notes }} #{{ .Hash }}/{{ .Location }} {{ .Name }} + {{ $files := index $.Files .Hash }} + {{ range $i, $f := $files }} + [{{ $i }}] + {{ end }} {{ end }} -- cgit v1.2.3