php - 提取后如何删除laravel delete文件?

标签 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);

但在所有操作中都会出现资源暂时不可用错误。 我发现这个错误是因为 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/

相关文章:

php - Laravel - Blade View 中的重复查询 - 减少查询数量

php - 如何将旧的 MySQL 数据库迁移到 Laravel 项目中?

php - 我如何知道以表单传递的值或数组

php - 将多维数组的路径表示为字符串(例如表单输入名称数组)

php - Laravel 独白。记录 INFO 级别到单独的文件

clojure - 如何创建 Clojure zipper

PHP 无法访问新创建的 zip 文件

haskell - 图形模型编辑器的 Zipper 数据结构

php - 如何将单个 MySQL 结果保存到 PHP 变量?

php - 使用AJAX根据下拉框返回查询结果