我正在使用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文件?
任何想法都很棒。 预先感谢。
答案 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