我想使用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
。
任何帮助将不胜感激。谢谢!
答案 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