FlySystem.rst 1.1 KB

Usage with FlySystem

For saving or uploading the generated zip, you can use the Flysystem package, and its many adapters.

For that you will need to provide another stream than the php://output default one, and pass it to Flysystem putStream method.

// Open Stream only once for read and write since it's a memory stream and
// the content is lost when closing the stream / opening another one
$tempStream = fopen('php://memory', 'w+');

// Init Options
$zipStreamOptions = new Archive();
$zipStreamOptions->setOutputStream($tempStream);

// Create Zip Archive
$zipStream = new ZipStream('test.zip', $zipStreamOptions);
$zipStream->addFile('test.txt', 'text');
$zipStream->finish();

// Store File (see Flysystem documentation, and all its framework integration)
$adapter = new Local(__DIR__.'/path/to/folder'); // Can be any adapter (AWS, Google, Ftp, etc.)
$filesystem = new Filesystem($adapter);

$filesystem->putStream('test.zip', $tempStream)

// Close Stream
fclose($tempStream);