Ale*_*lex 4 php laravel laravel-5 laravel-5.1
我在删除目录时遇到问题。
我正在创建一个临时目录,在其中解压缩文件,并在完成后将其删除。
我的代码看起来很像这样:
$tempPath = storage_path('temp/'.$filemd5.'/');
Storage::makeDirectory($tempPath);
$success = Storage::deleteDirectory($tempPath);
return $success;
Run Code Online (Sandbox Code Playgroud)
它不返回任何内容,目录也不会被删除。
也许您对目录没有足够的权限storage/app(我认为这是默认的)。检查一下,如果这不起作用,您可以随时调用 PHPexec函数(假设您使用的是 Linux):
exec('rm -r ' . storage_path() . '/' . $tempPath)
更新:问题是makeDirectory有第二个int参数,默认情况下将权限设置为(511即-r-x--x--x读取和执行,但不写入)。解决方法是将第二个参数设置为711is -rwx--x--x,您将能够删除创建的目录。传递其他两个参数很有用,true因为它将递归地应用权限并强制执行操作。
正如亚历克斯所说,你必须使用File而不是Storage. 因此,创建稍后可以删除的目录的最终代码是:
File::makeDirectory($tempPath, 0711, true, true);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6450 次 |
| 最近记录: |