我正在使用 Zipper提取上传的 zip 文件并在提取后删除文件。 所以我像这样上传和提取:
$f = $request['file']->move(public_path($directory), $fullFileName);
\Zipper::make($f)->extractTo(public_path($directory) . $fileName);
而且效果很好。我试过使用这些方法删除文件。
1 - Storage::disk('products')->delete($fullFileName);
2 - File::delete(public_path($directory) . $fullFileName);
3 - $del = unlink(public_path($directory) . $fullFileName);
但在所有操作中都会出现资源暂时不可用错误。 我发现这个错误是因为 zipper (简单的文件和目录有效)。
所以我的问题是,如何在提取后删除上传的 zip 文件,使用 zipper ?
任何想法都会很棒。 提前致谢。
最佳答案
你需要在解压之后调用 $zipper->close();
,所以如果你这样做,它应该可以工作:
$zipper = new \Chumper\Zipper\Zipper;
$zipper->make($f)->extractTo(public_path($directory) . $fileName);
$zipper->close();
unlink(public_path($directory) . $fullFileName);
如果您不关闭 zipper ,它不会将结果写入磁盘并保持原始文件锁定。查看documentation .
关于php - 提取后如何删除laravel delete文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52848269/