Php 如何在Laravel项目中创建gzip文件夹
我想将文件夹及其在Laravel项目中的内容压缩到gzip存档中,并尽可能达到最高的压缩级别Php 如何在Laravel项目中创建gzip文件夹,php,laravel,laravel-5,gzip,archive,Php,Laravel,Laravel 5,Gzip,Archive,我想将文件夹及其在Laravel项目中的内容压缩到gzip存档中,并尽可能达到最高的压缩级别 storage_path().'myFolder' 这并不意味着要通过HTTP传输,所以请不要与服务器响应gzip压缩混淆 我只是想要一个档案,但没有找到信息,Laravel是否有任何用于实践的工具,有什么想法?对我来说,这似乎不是Laravel特有的问题。对于普通的zip压缩,可以使用Laravel软件包(即),但是对于gzip,您可能需要查看一下。在我看来,这项工作并不需要自己的软件包 顺便说一下
storage_path().'myFolder'
这并不意味着要通过HTTP传输,所以请不要与服务器响应gzip压缩混淆
我只是想要一个档案,但没有找到信息,Laravel是否有任何用于实践的工具,有什么想法?对我来说,这似乎不是Laravel特有的问题。对于普通的zip压缩,可以使用Laravel软件包(即),但是对于gzip,您可能需要查看一下。在我看来,这项工作并不需要自己的软件包
顺便说一下,您应该使用
storage\u path('myFolder')
来支持storage\u path().'myFolder'
。这将正确连接路径。这里有一个帮助函数供您使用
if (!function_exists('gzip')) {
function gzip($filename, $disk = 'local', $delete_original = false)
{
$disk = Storage::disk($disk);
$data = $disk->get($filename);
$out_file = "$filename.gz";
$gzdata = gzencode($data, 9);
$disk->put($out_file, $gzdata);
$fp = fopen($disk->path($out_file), "w");
$result = fwrite($fp, $gzdata);
fclose($fp);
if ($result && $delete_original) {
$disk->delete($filename);
}
return $result > 0;
}
}
在laravel 7.x上为我测试和工作。只需确保您的机器上已启用gzip压缩
Gzip是一种流压缩格式,它没有文件或目录的概念。您需要使用像tar和gzip这样的归档格式,或者使用像Zipfile./bin/bash这样的组合格式<代码>$tar-zcf./archive.tar.gz./myFolder。从php
shell\u exec('tar-zcf[path\u to]/archive.tar.gz[path\u From]/myFolder')
或使用您迄今为止尝试过的方法?