使用 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'。摘自