PHP压缩文件而不保存到本地目录

时间:2018-10-18 10:12:29

标签: php laravel ziparchive

我想使用Laravel压缩一些图像,但是我不知道如何压缩那些图像而不先存储到本地目录。是否可以在不将它们保存到我的本地目录的情况下这样做?我的本地计算机上运行的是PHP 7.1。

根据ZipArchive的官方文档,如果文件已经存储在本地目录中,则只能将其添加到zip中。

以下是我压缩单个图像的代码片段:

Use Image;
Use ZipArchive();
$image = Image::make('http://example-image.com');
$zip = new ZipArchive();
$zip->addFile($image, 'image-filename');

预期的行为:图像将被插入$zip

任何帮助将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:0)

尝试使用addFromString

$zip->addFromString('image-filename.png', $image->encode('png'));

$zip->addFromString('image-filename.png', $image->encode('jpg', $quality));

答案 1 :(得分:-1)

尝试:

$zip->addFile($_FILE['tmp_name'], $_FILE['name']);

从临时位置添加到zip