Add support for file uploads

This commit is contained in:
Daan Sprenkels
2019-11-10 19:03:57 +01:00
parent d0b8a9ab9e
commit 66eb0bf97a
10 changed files with 434 additions and 79 deletions

View File

@@ -4,6 +4,7 @@ import (
"fmt"
"log"
"net/http"
"runtime/debug"
"time"
"github.com/gorilla/mux"
@@ -15,12 +16,14 @@ func recoveryMiddleware(next http.Handler) http.Handler {
defer func() {
if err := recover(); err != nil {
log.Printf("error: panic while recovering from another panic: %v\n", err)
debug.PrintStack()
fmt.Fprintf(w, "internal server error: %v\n", err)
}
}()
if err := recover(); err != nil {
log.Printf("error: %v\n", err)
debug.PrintStack()
renderInternalServerError(w, r, err)
}
}()
@@ -39,6 +42,7 @@ func StartMainServer(addr string) {
router.HandleFunc("/{key:[A-Za-z0-9-_]{4,}}/meta", viewPasteHandlerMeta).Methods("GET")
router.HandleFunc("/{key:[A-Za-z0-9-_]{4,}}", deletePasteHandler).Methods("DELETE")
router.HandleFunc("/{key:[A-Za-z0-9-_]{4,}}/delete", deletePasteHandler).Methods("POST")
router.HandleFunc("/uploads/{id:[A-Za-z0-9-_]+}/{filename:.+}", uploadFileGetHandler).Methods("GET")
srv := &http.Server{
Handler: router,