Logo: otpremanje i greške vode na /admin/podesavanja/opste umesto stare stranice
This commit is contained in:
@@ -362,20 +362,20 @@ func (h *Handler) OtpremiLogo(w http.ResponseWriter, r *http.Request) {
|
|||||||
// ograničavamo telo zahteva na 2MB + malo za zaglavlja forme
|
// ograničavamo telo zahteva na 2MB + malo za zaglavlja forme
|
||||||
r.Body = http.MaxBytesReader(w, r.Body, 2<<20+4096)
|
r.Body = http.MaxBytesReader(w, r.Body, 2<<20+4096)
|
||||||
if err := r.ParseMultipartForm(2 << 20); err != nil {
|
if err := r.ParseMultipartForm(2 << 20); err != nil {
|
||||||
http.Redirect(w, r, "/podesavanja?logo_greska=Fajl+je+prevelik+%28maksimum+2+MB%29", http.StatusSeeOther)
|
http.Redirect(w, r, "/admin/podesavanja/opste?logo_greska=Fajl+je+prevelik+%28maksimum+2+MB%29", http.StatusSeeOther)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
fajl, zaglavlje, err := r.FormFile("logo")
|
fajl, zaglavlje, err := r.FormFile("logo")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
http.Redirect(w, r, "/podesavanja?logo_greska=Nije+odabran+fajl", http.StatusSeeOther)
|
http.Redirect(w, r, "/admin/podesavanja/opste?logo_greska=Nije+odabran+fajl", http.StatusSeeOther)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
defer fajl.Close()
|
defer fajl.Close()
|
||||||
|
|
||||||
// eksplicitna provera veličine (zaglavlje.Size je postavljeno od strane browsera)
|
// eksplicitna provera veličine (zaglavlje.Size je postavljeno od strane browsera)
|
||||||
if zaglavlje.Size > 2<<20 {
|
if zaglavlje.Size > 2<<20 {
|
||||||
http.Redirect(w, r, "/podesavanja?logo_greska=Fajl+je+prevelik+%28maksimum+2+MB%29", http.StatusSeeOther)
|
http.Redirect(w, r, "/admin/podesavanja/opste?logo_greska=Fajl+je+prevelik+%28maksimum+2+MB%29", http.StatusSeeOther)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -389,7 +389,7 @@ func (h *Handler) OtpremiLogo(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
ocekivaniMime, ok := dozvoljenoExt[ext]
|
ocekivaniMime, ok := dozvoljenoExt[ext]
|
||||||
if !ok {
|
if !ok {
|
||||||
http.Redirect(w, r, "/podesavanja?logo_greska=Dozvoljeni+formati+su+PNG%2C+JPG+i+SVG", http.StatusSeeOther)
|
http.Redirect(w, r, "/admin/podesavanja/opste?logo_greska=Dozvoljeni+formati+su+PNG%2C+JPG+i+SVG", http.StatusSeeOther)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -399,12 +399,12 @@ func (h *Handler) OtpremiLogo(w http.ResponseWriter, r *http.Request) {
|
|||||||
n, _ := fajl.Read(buf)
|
n, _ := fajl.Read(buf)
|
||||||
stvarniMime := http.DetectContentType(buf[:n])
|
stvarniMime := http.DetectContentType(buf[:n])
|
||||||
if !strings.HasPrefix(stvarniMime, ocekivaniMime) {
|
if !strings.HasPrefix(stvarniMime, ocekivaniMime) {
|
||||||
http.Redirect(w, r, "/podesavanja?logo_greska=Sadržaj+fajla+ne+odgovara+odabranoj+ekstenziji", http.StatusSeeOther)
|
http.Redirect(w, r, "/admin/podesavanja/opste?logo_greska=Sadržaj+fajla+ne+odgovara+odabranoj+ekstenziji", http.StatusSeeOther)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// vraćamo kursor na početak
|
// vraćamo kursor na početak
|
||||||
if _, err := fajl.Seek(0, io.SeekStart); err != nil {
|
if _, err := fajl.Seek(0, io.SeekStart); err != nil {
|
||||||
http.Redirect(w, r, "/podesavanja?logo_greska=Greška+pri+obradi+fajla", http.StatusSeeOther)
|
http.Redirect(w, r, "/admin/podesavanja/opste?logo_greska=Greška+pri+obradi+fajla", http.StatusSeeOther)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -419,14 +419,14 @@ func (h *Handler) OtpremiLogo(w http.ResponseWriter, r *http.Request) {
|
|||||||
dst, err := os.Create(odrediste)
|
dst, err := os.Create(odrediste)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
slog.Error("upload loga: ne mogu kreirati fajl", "error", err)
|
slog.Error("upload loga: ne mogu kreirati fajl", "error", err)
|
||||||
http.Redirect(w, r, "/podesavanja?logo_greska=Greška+pri+čuvanju+fajla", http.StatusSeeOther)
|
http.Redirect(w, r, "/admin/podesavanja/opste?logo_greska=Greška+pri+čuvanju+fajla", http.StatusSeeOther)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
defer dst.Close()
|
defer dst.Close()
|
||||||
|
|
||||||
if _, err := io.Copy(dst, fajl); err != nil {
|
if _, err := io.Copy(dst, fajl); err != nil {
|
||||||
slog.Error("upload loga: greška pri kopiranju", "error", err)
|
slog.Error("upload loga: greška pri kopiranju", "error", err)
|
||||||
http.Redirect(w, r, "/podesavanja?logo_greska=Greška+pri+čuvanju+fajla", http.StatusSeeOther)
|
http.Redirect(w, r, "/admin/podesavanja/opste?logo_greska=Greška+pri+čuvanju+fajla", http.StatusSeeOther)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -434,11 +434,11 @@ func (h *Handler) OtpremiLogo(w http.ResponseWriter, r *http.Request) {
|
|||||||
putanja := fmt.Sprintf("/static/uploads/logo%s?v=%d", ext, time.Now().Unix())
|
putanja := fmt.Sprintf("/static/uploads/logo%s?v=%d", ext, time.Now().Unix())
|
||||||
if err := ntechsqlite.SacuvajPodesavanje(r.Context(), h.DB, "logo_putanja", putanja); err != nil {
|
if err := ntechsqlite.SacuvajPodesavanje(r.Context(), h.DB, "logo_putanja", putanja); err != nil {
|
||||||
slog.Error("upload loga: greška pri čuvanju putanje", "error", err)
|
slog.Error("upload loga: greška pri čuvanju putanje", "error", err)
|
||||||
http.Redirect(w, r, "/podesavanja?logo_greska=Greška+pri+čuvanju+podešavanja", http.StatusSeeOther)
|
http.Redirect(w, r, "/admin/podesavanja/opste?logo_greska=Greška+pri+čuvanju+podešavanja", http.StatusSeeOther)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
http.Redirect(w, r, "/podesavanja?sacuvano=1", http.StatusSeeOther)
|
http.Redirect(w, r, "/admin/podesavanja/opste?sacuvano=1", http.StatusSeeOther)
|
||||||
}
|
}
|
||||||
|
|
||||||
// UkloniLogo briše logo fajl i čisti putanju iz podešavanja
|
// UkloniLogo briše logo fajl i čisti putanju iz podešavanja
|
||||||
|
|||||||
Reference in New Issue
Block a user