mirror of
https://github.com/gin-gonic/gin.git
synced 2025-10-14 20:22:20 +08:00
Fixed part where permissions could not be changed due to umask settings
This commit is contained in:
parent
84b377075d
commit
75fe2b9d00
@ -689,7 +689,12 @@ func (c *Context) SaveUploadedFile(file *multipart.FileHeader, dst string, perm
|
|||||||
perm = append(perm, 0o750)
|
perm = append(perm, 0o750)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = os.MkdirAll(filepath.Dir(dst), perm[0]); err != nil {
|
dirPath := filepath.Dir(dst)
|
||||||
|
if err = os.MkdirAll(dirPath, perm[0]); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err = os.Chmod(dirPath, perm[0]); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -171,7 +171,7 @@ func TestSaveUploadedFileWithPermission(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
assert.Equal(t, "permission_test", f.Filename)
|
assert.Equal(t, "permission_test", f.Filename)
|
||||||
|
|
||||||
var mode fs.FileMode = 0o777
|
var mode fs.FileMode = 0o755
|
||||||
require.NoError(t, c.SaveUploadedFile(f, "permission_test", mode))
|
require.NoError(t, c.SaveUploadedFile(f, "permission_test", mode))
|
||||||
|
|
||||||
info, err := os.Stat(filepath.Dir("permission_test"))
|
info, err := os.Stat(filepath.Dir("permission_test"))
|
||||||
@ -195,7 +195,7 @@ func TestSaveUploadedFileWithPermissionFailed(t *testing.T) {
|
|||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
assert.Equal(t, "permission_test", f.Filename)
|
assert.Equal(t, "permission_test", f.Filename)
|
||||||
|
|
||||||
var mode fs.FileMode = 0o666
|
var mode fs.FileMode = 0o644
|
||||||
require.Error(t, c.SaveUploadedFile(f, "test/permission_test", mode))
|
require.Error(t, c.SaveUploadedFile(f, "test/permission_test", mode))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user