mirror of
https://github.com/yanislav-igonin/micrach
synced 2024-12-22 14:22:33 +03:00
feat: add files ext check
This commit is contained in:
parent
a87101d1ea
commit
86b7750a36
@ -125,10 +125,18 @@ func CreateThread(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
filesInRequest := form.File["files"]
|
filesInRequest := form.File["files"]
|
||||||
|
isFilesExtsValid := Utils.CheckFilesExt(filesInRequest)
|
||||||
|
if !isFilesExtsValid {
|
||||||
|
errorHtmlData := Repositories.BadRequestHtmlData{
|
||||||
|
Message: Repositories.InvalidFileExtErrorMessage,
|
||||||
|
}
|
||||||
|
c.HTML(http.StatusInternalServerError, "400.html", errorHtmlData)
|
||||||
|
return
|
||||||
|
}
|
||||||
isFilesSizesNotToBig := Utils.CheckFilesSize(filesInRequest)
|
isFilesSizesNotToBig := Utils.CheckFilesSize(filesInRequest)
|
||||||
if !isFilesSizesNotToBig {
|
if !isFilesSizesNotToBig {
|
||||||
errorHtmlData := Repositories.BadRequestHtmlData{
|
errorHtmlData := Repositories.BadRequestHtmlData{
|
||||||
Message: Repositories.InvalidFileSizeMessage,
|
Message: Repositories.InvalidFileSizeErrorMessage,
|
||||||
}
|
}
|
||||||
c.HTML(http.StatusInternalServerError, "400.html", errorHtmlData)
|
c.HTML(http.StatusInternalServerError, "400.html", errorHtmlData)
|
||||||
return
|
return
|
||||||
@ -257,10 +265,18 @@ func UpdateThread(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
filesInRequest := form.File["files"]
|
filesInRequest := form.File["files"]
|
||||||
|
isFilesExtsValid := Utils.CheckFilesExt(filesInRequest)
|
||||||
|
if !isFilesExtsValid {
|
||||||
|
errorHtmlData := Repositories.BadRequestHtmlData{
|
||||||
|
Message: Repositories.InvalidFileExtErrorMessage,
|
||||||
|
}
|
||||||
|
c.HTML(http.StatusInternalServerError, "400.html", errorHtmlData)
|
||||||
|
return
|
||||||
|
}
|
||||||
isFilesSizesNotToBig := Utils.CheckFilesSize(filesInRequest)
|
isFilesSizesNotToBig := Utils.CheckFilesSize(filesInRequest)
|
||||||
if !isFilesSizesNotToBig {
|
if !isFilesSizesNotToBig {
|
||||||
errorHtmlData := Repositories.BadRequestHtmlData{
|
errorHtmlData := Repositories.BadRequestHtmlData{
|
||||||
Message: Repositories.InvalidFileSizeMessage,
|
Message: Repositories.InvalidFileSizeErrorMessage,
|
||||||
}
|
}
|
||||||
c.HTML(http.StatusInternalServerError, "400.html", errorHtmlData)
|
c.HTML(http.StatusInternalServerError, "400.html", errorHtmlData)
|
||||||
return
|
return
|
||||||
|
@ -59,4 +59,5 @@ type BadRequestHtmlData struct {
|
|||||||
|
|
||||||
const InvalidTitleOrTextErrorMessage = "TITLE OR TEXT SHOULD NOT BE EMPTY"
|
const InvalidTitleOrTextErrorMessage = "TITLE OR TEXT SHOULD NOT BE EMPTY"
|
||||||
const InvalidCaptchaErrorMessage = "INVALID CAPTCHA"
|
const InvalidCaptchaErrorMessage = "INVALID CAPTCHA"
|
||||||
const InvalidFileSizeMessage = "FILE SIZE EXCIDED (3MB PER FILE)"
|
const InvalidFileSizeErrorMessage = "FILE SIZE EXCIDED (3MB PER FILE)"
|
||||||
|
const InvalidFileExtErrorMessage = "AVALIABLE FILE EXT: PNG, JPG"
|
||||||
|
@ -15,6 +15,9 @@ import (
|
|||||||
|
|
||||||
const UPLOADS_DIR_PATH = "uploads"
|
const UPLOADS_DIR_PATH = "uploads"
|
||||||
const FILE_SIZE_IN_BYTES = 3145728 // 3MB
|
const FILE_SIZE_IN_BYTES = 3145728 // 3MB
|
||||||
|
type stringSlice []string
|
||||||
|
|
||||||
|
var PERMITTED_FILE_EXTS = stringSlice{"image/jpeg", "image/png"} // 3MB
|
||||||
|
|
||||||
// Check dir existence.
|
// Check dir existence.
|
||||||
func CheckIfFolderExists(path string) bool {
|
func CheckIfFolderExists(path string) bool {
|
||||||
@ -82,9 +85,25 @@ func CheckFilesSize(files []*multipart.FileHeader) bool {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
// func CheckFilesExt(){
|
func CheckFilesExt(files []*multipart.FileHeader) bool {
|
||||||
|
for _, file := range files {
|
||||||
|
ext := file.Header.Get("Content-Type")
|
||||||
|
if !PERMITTED_FILE_EXTS.includes(ext) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// }
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ss stringSlice) includes(toCheck string) bool {
|
||||||
|
for _, s := range ss {
|
||||||
|
if toCheck == s {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
func MakeImageThumbnail(originalPath, ext string, threadID, fileID int) (*image.NRGBA, error) {
|
func MakeImageThumbnail(originalPath, ext string, threadID, fileID int) (*image.NRGBA, error) {
|
||||||
img, err := imaging.Open(originalPath, imaging.AutoOrientation(true))
|
img, err := imaging.Open(originalPath, imaging.AutoOrientation(true))
|
||||||
|
Loading…
Reference in New Issue
Block a user