PHP无法访问新创建的zip文件
发布时间:2020-12-13 16:06:15 所属栏目:PHP教程 来源:网络整理
导读:我使用Laravel 5.2和 Zipper来创建ZIP存档并由用户下载.我认为这个问题通常与Laravel或Zipper没有严格的关系.脚步: 用户点击链接download_all. 第一个php脚本创建存档. 接下来,相同的脚本推送创建的文件以强制用户下载. 一切听起来都很正常,但我有奇怪的行
我使用Laravel 5.2和
Zipper来创建ZIP存档并由用户下载.我认为这个问题通常与Laravel或Zipper没有严格的关系.脚步:
>用户点击链接download_all. 一切听起来都很正常,但我有奇怪的行为,创建zip存档后(第2点)php / server无法看到这个新创建的文件. 当我将用户重定向到$filePath(而不是阅读它并推送下载)时,一切正常,用户获取文件.但为什么我不能在“脚本生命周期”中访问新创建的文件? $path是正确的. 任何的想法? 码: public function downloadAll($id) { $sourceFilesDir = 'upload/source/' . $id; $zipPath = 'upload/source-zip/' . date('Y-m-d-H-i-s') . '.zip'; Zipper::make($zipPath)->add($sourceFilesDir); $fullPath = public_path($zipPath); // works // return response()->redirectTo($zipPath); $headers = [ 'Content-Type: application/zip','Content-Transfer-Encoding: Binary','Content-Length: ' . filesize($fullPath),]; // dont works,cant see file return response()->download($fullPath,basename($zipPath),$headers); } 解决方法
@Holger吹嘘.
应关闭拉链以保存文件. 正确的代码: Zipper::make($zipPath)->add($sourceFilesDir)->close(); – > close()方法 不幸的是,在Zipper文档中没有明确提到这一点. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |