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

时间:2018-10-17 06:09:57

标签: php laravel zipper

我正在使用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文件?

任何想法都很棒。 预先感谢。

2 个答案:

答案 0 :(得分:2)

提取$zipper->close();后,您需要调用它,因此,如果执行此操作,则它应该可以工作:

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

如果不关闭拉链,将不会将结果写入磁盘,也不会锁定原始文件。参见documentation

答案 1 :(得分:2)

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