解压后如何删除laravel删除文件?

How to delete laravel delete file after extract?

我正在使用 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);

但在所有操作中都会出现 资源暂时不可用 错误。 我发现这个错误是因为拉链(简单的文件和目录有效)。

所以我的问题是,如何在提取后删除上传的 zip 文件,使用拉链?

任何想法都会很棒。 提前致谢。

你需要在提取后调用 $zipper->close();,所以如果你这样做,它应该可以工作:

$zipper = new \Chumper\Zipper\Zipper;
$zipper->make($f)->extractTo(public_path($directory) . $fileName);
$zipper->close();
unlink(public_path($directory) . $fullFileName);

如果你不关闭拉链,它不会将结果写入磁盘并保持原始文件锁定。见 documentation.

$zip = new Zipper;
$zip->make($pathZipFile)->extractTo($destinationPath);
$zip->close(); // important
unlink($pathZipFile); // delete Zip file after