我在删除目录时遇到问题.
我的代码看起来非常像这样:
$tempPath = storage_path('temp/'.$filemd5.'/');
Storage::makeDirectory($tempPath);
$success = Storage::deleteDirectory($tempPath);
return $success;
解决方法:
也许您对存储/应用程序目录(我认为是默认目录)没有足够的权限.检查一下,如果这不起作用,你总是可以诉诸PHP exec函数(假设你在Linux上):
exec(‘rm -r’.storage_path().’/’.$tempPath)
更新:问题是makeDirectory有第二个int参数,默认情况下将权限设置为511,即-r-x-x-x(即读取和执行,但不写入).解决方法是将第二个参数设置为711,即-rwx – x – x,您将能够删除创建的目录.将另外两个参数作为true传递是有用的,因为它将递归地应用权限,并强制执行操作.
正如Alex所说,你必须使用File而不是Storage.因此,以后您可以删除的创建目录的最终代码是:
File::makeDirectory($tempPath, 0711, true, true);