使用 mkdir() 在 laravel 中创建一个可写目录
Making a writeable directory in laravel using mkdir()
我的问题不是文件夹正在写入,而是写入时使用的权限。这是我用来写入文件的代码:
// check if the file/folder exists
$targetPath = 'files/docmoga/';
if(!file_exists($targetPath)){
$oldmask = umask(0);
mkdir($targetPath, '0777', true);
umask($oldmask);
}
move_uploaded_file($tempFile, $targetFile);
由于权限问题,最后一行失败。以下是写入文件夹的权限:
dr----x--t 2 apache apache 4096 May 4 09:17 docmoga
可能会发生什么情况导致该文件夹的权限写入不正确?如果它有帮助,我正在使用 laravel 作为框架,我知道它不应该有任何意义。
您是否检查过您的脚本 运行 属于哪个用户?
运行 exec('whoami')
在你的脚本中并查看输出。它应该是 apache
或具有创建文件夹的适当权限的用户。
也尝试使用文字八进制数 0777
与字符串版本 '0777'
。摘自
我的问题不是文件夹正在写入,而是写入时使用的权限。这是我用来写入文件的代码:
// check if the file/folder exists
$targetPath = 'files/docmoga/';
if(!file_exists($targetPath)){
$oldmask = umask(0);
mkdir($targetPath, '0777', true);
umask($oldmask);
}
move_uploaded_file($tempFile, $targetFile);
由于权限问题,最后一行失败。以下是写入文件夹的权限:
dr----x--t 2 apache apache 4096 May 4 09:17 docmoga
可能会发生什么情况导致该文件夹的权限写入不正确?如果它有帮助,我正在使用 laravel 作为框架,我知道它不应该有任何意义。
您是否检查过您的脚本 运行 属于哪个用户?
运行 exec('whoami')
在你的脚本中并查看输出。它应该是 apache
或具有创建文件夹的适当权限的用户。
也尝试使用文字八进制数 0777
与字符串版本 '0777'
。摘自