33 lines
1.1 KiB
ReStructuredText
33 lines
1.1 KiB
ReStructuredText
|
Usage with FlySystem
|
||
|
===============
|
||
|
|
||
|
For saving or uploading the generated zip, you can use the
|
||
|
`Flysystem <https://flysystem.thephpleague.com>`_ 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.
|
||
|
|
||
|
.. code-block:: php
|
||
|
|
||
|
// 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);
|