From 6aae3509e422e5033321f51ea54e1615da78099d Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Fri, 31 May 2019 12:13:25 +0300 Subject: [PATCH] Keep original filename --- src/uploader/main.go | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/uploader/main.go b/src/uploader/main.go index 036b6cb..116c402 100644 --- a/src/uploader/main.go +++ b/src/uploader/main.go @@ -61,7 +61,7 @@ var ( NotifyToAddr *string ) -func notify(timestamp string, size int64, comment string) { +func notify(filename, timestamp string, size int64, comment string) { if *NotifyToAddr == "" { return } @@ -79,7 +79,7 @@ Content-Transfer-Encoding: base64 *NotifyFromAddr, *NotifyToAddr, mime.BEncoding.Encode("UTF-8", fmt.Sprintf( - "%s (%d KiB)", timestamp, size/1024, + "%s (%d KiB)", filename, size/1024, )), )), strings.NewReader(base64.StdEncoding.EncodeToString([]byte(fmt.Sprintf( @@ -119,51 +119,52 @@ func upload(w http.ResponseWriter, r *http.Request) { panic(err) } fn := time.Now().Format(time.RFC3339Nano) + fnOrig := p.FileName() fd, err := os.OpenFile(fn+".part", os.O_WRONLY|os.O_CREATE, 0600) if err != nil { - log.Println(r.RemoteAddr, fn, p.FileName(), err) + log.Println(r.RemoteAddr, fn, fnOrig, err) return } fdBuf := bufio.NewWriterSize(fd, WriteBufSize) mw := io.MultiWriter(fdBuf, h) n, err := io.Copy(mw, p) if err != nil { - log.Println(r.RemoteAddr, fn, p.FileName(), err) + log.Println(r.RemoteAddr, fn, fnOrig, err) fd.Close() return } if n == 0 { - log.Println(r.RemoteAddr, fn, p.FileName(), "empty") + log.Println(r.RemoteAddr, fn, fnOrig, "empty") os.Remove(fn + ".part") fd.Close() fmt.Fprintf(w, "Empty file") return } if err = fdBuf.Flush(); err != nil { - log.Println(r.RemoteAddr, fn, p.FileName(), err) + log.Println(r.RemoteAddr, fn, fnOrig, err) fd.Close() return } fd.Close() sum := hex.EncodeToString(h.Sum(nil)) if err = os.Rename(fn+".part", fn); err != nil { - log.Println(r.RemoteAddr, fn, p.FileName(), n, sum, err) + log.Println(r.RemoteAddr, fn, fnOrig, n, sum, err) return } fmt.Fprintf(w, "Timestamp: %s\nBytes: %d\nBLAKE2b: %s\n", fn, n, sum) - log.Println(r.RemoteAddr, fn, p.FileName(), n, sum) + log.Println(r.RemoteAddr, fn, fnOrig, n, sum) p, err = mr.NextPart() if err != nil || p.FormName() != CommentFieldName { - go notify(fn, n, "") + go notify(fnOrig, fn, n, "") return } comment, err := ioutil.ReadAll(p) if err != nil || len(comment) == 0 { - go notify(fn, n, "") + go notify(fnOrig, fn, n, "") return } ioutil.WriteFile(fn+".txt", comment, os.FileMode(0600)) - go notify(fn, n, string(comment)) + go notify(fnOrig, fn, n, string(comment)) } func main() { -- 2.44.0