refactor(context): add an optional permission parameter to the SaveUploadedFile method (#4068) (#4088)
Co-authored-by: hso <hso@trinitysoft.co.kr>
This commit is contained in:
+11
-2
@@ -7,6 +7,7 @@ package gin
|
||||
import (
|
||||
"errors"
|
||||
"io"
|
||||
"io/fs"
|
||||
"log"
|
||||
"math"
|
||||
"mime/multipart"
|
||||
@@ -676,14 +677,22 @@ func (c *Context) MultipartForm() (*multipart.Form, error) {
|
||||
}
|
||||
|
||||
// SaveUploadedFile uploads the form file to specific dst.
|
||||
func (c *Context) SaveUploadedFile(file *multipart.FileHeader, dst string) error {
|
||||
func (c *Context) SaveUploadedFile(file *multipart.FileHeader, dst string, perm ...fs.FileMode) error {
|
||||
src, err := file.Open()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer src.Close()
|
||||
|
||||
if err = os.MkdirAll(filepath.Dir(dst), 0o750); err != nil {
|
||||
if len(perm) <= 0 {
|
||||
perm = append(perm, 0o750)
|
||||
}
|
||||
|
||||
if err = os.MkdirAll(filepath.Dir(dst), perm[0]); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if err = os.Chmod(filepath.Dir(dst), perm[0]); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user