我正在尝试从.gz
文件列表中创建s3
文件。我能够获得文件列表并读取文件的内容。我无法弄清楚如何将它们写入.gz
文件。还有一种方法可以让我在下载前将它们写入内存而不是文件吗?
这就是我目前正在做的事情:
$files = $disk->files('s3/files');
$outFile = 'opt.gz';
$gz = gzopen($outFile, 'w9');
// Add the items to the gz file
foreach($files as $file) {
$content = $disk->getDriver()->read($file);
file_put_contents($outFile, gzencode($content), FILE_APPEND);
}
gzclose($gz);
// Download the file
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($outFile).'"');
header('Content-Length: ' . filesize($outFile));
readfile($outFile);