mirror of
https://github.com/notherealmarco/WASAPhoto.git
synced 2025-05-05 12:22:35 +02:00
Add file mime type check & switch usercard errors to modal
This commit is contained in:
parent
4cad313aaa
commit
6840c34d7b
3 changed files with 56 additions and 13 deletions
|
@ -6,6 +6,7 @@ import (
|
|||
"os"
|
||||
"path/filepath"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/julienschmidt/httprouter"
|
||||
"github.com/notherealmarco/WASAPhoto/service/api/authorization"
|
||||
|
@ -39,23 +40,39 @@ func (rt *_router) PostPhoto(w http.ResponseWriter, r *http.Request, ps httprout
|
|||
return
|
||||
}
|
||||
|
||||
file, err := os.Create(path)
|
||||
/*file, err := os.Create(path)
|
||||
if err != nil {
|
||||
helpers.SendInternalError(err, "Error creating file", w, rt.baseLogger)
|
||||
helpers.RollbackOrLogError(transaction, rt.baseLogger)
|
||||
return
|
||||
}*/
|
||||
|
||||
bytes, err := io.ReadAll(r.Body)
|
||||
|
||||
if err != nil {
|
||||
helpers.SendInternalError(err, "Error checking the file", w, rt.baseLogger)
|
||||
helpers.RollbackOrLogError(transaction, rt.baseLogger)
|
||||
return
|
||||
}
|
||||
|
||||
if _, err = io.Copy(file, r.Body); err != nil {
|
||||
mimeType := http.DetectContentType(bytes)
|
||||
|
||||
if !strings.HasPrefix(mimeType, "image/") {
|
||||
helpers.SendStatus(http.StatusBadRequest, w, mimeType+" file is not a valid image", rt.baseLogger)
|
||||
helpers.RollbackOrLogError(transaction, rt.baseLogger)
|
||||
return
|
||||
}
|
||||
|
||||
if err = os.WriteFile(path, bytes, 0644); err != nil {
|
||||
helpers.SendInternalError(err, "Error writing the file", w, rt.baseLogger)
|
||||
helpers.RollbackOrLogError(transaction, rt.baseLogger)
|
||||
return
|
||||
}
|
||||
|
||||
if err = file.Close(); err != nil {
|
||||
/*if err = file.Close(); err != nil {
|
||||
helpers.SendInternalError(err, "Error closing file", w, rt.baseLogger)
|
||||
helpers.RollbackOrLogError(transaction, rt.baseLogger)
|
||||
}
|
||||
}*/
|
||||
|
||||
err = transaction.Commit()
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue