diff --git a/context.go b/context.go index 0ccadca5..f926bd2e 100644 --- a/context.go +++ b/context.go @@ -689,12 +689,11 @@ func (c *Context) SaveUploadedFile(file *multipart.FileHeader, dst string, perm perm = append(perm, 0o750) } - dirPath := filepath.Dir(dst) - if err = os.MkdirAll(dirPath, perm[0]); err != nil { + if err = os.MkdirAll(filepath.Dir(dst), perm[0]); err != nil { return err } - - if err = os.Chmod(dirPath, perm[0]); err != nil { + + if err = os.Chmod(filepath.Dir(dst), perm[0]); err != nil { return err } diff --git a/context_test.go b/context_test.go index c62ba232..e3f3d89d 100644 --- a/context_test.go +++ b/context_test.go @@ -170,10 +170,8 @@ func TestSaveUploadedFileWithPermission(t *testing.T) { f, err := c.FormFile("file") require.NoError(t, err) assert.Equal(t, "permission_test", f.Filename) - var mode fs.FileMode = 0o755 require.NoError(t, c.SaveUploadedFile(f, "permission_test", mode)) - info, err := os.Stat(filepath.Dir("permission_test")) require.NoError(t, err) @@ -194,7 +192,6 @@ func TestSaveUploadedFileWithPermissionFailed(t *testing.T) { f, err := c.FormFile("file") require.NoError(t, err) assert.Equal(t, "permission_test", f.Filename) - var mode fs.FileMode = 0o644 require.Error(t, c.SaveUploadedFile(f, "test/permission_test", mode)) }