php zip stream,ZipStream-PHP

ZipStream-PHP

badge.svg

68747470733a2f2f636f766572616c6c732e696f2f7265706f732f6769746875622f6d61656e6e6368656e2f5a697053747265616d2d5048502f62616467652e7376673f6272616e63683d6d6173746572

68747470733a2f2f706f7365722e707567782e6f72672f6d61656e6e6368656e2f7a697073747265616d2d7068702f762f737461626c65

68747470733a2f2f706f7365722e707567782e6f72672f6d61656e6e6368656e2f7a697073747265616d2d7068702f646f776e6c6f616473

68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f7a697073747265616d2f616c6c2f62616467652e7376673f6c6162656c3d66696e616e6369616c2b636f6e7472696275746f727368747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6d61656e6e6368656e2f7a697073747265616d2d7068702e737667

Overview

A fast and simple streaming zip file downloader for PHP. Using this library will save you from having to write the Zip to disk. You can directly send it to the user, which is much faster. It can work with S3 buckets or any PSR7 Stream.

Please see the LICENSE file for licensing and warranty information.

Installation

Simply add a dependency on maennchen/zipstream-php to your project's composer.json file if you use Composer to manage the dependencies of your project. Use following command to add the package to your project's dependencies:

composer require maennchen/zipstream-php

Usage and options

Here's a simple example:

// Autoload the dependencies

require 'vendor/autoload.php';

// enable output of HTTP headers

$options = new ZipStream\Option\Archive();

$options->setSendHttpHeaders(true);

// create a new zipstream object

$zip = new ZipStream\ZipStream('example.zip', $options);

// create a file named 'hello.txt'

$zip->addFile('hello.txt', 'This is the contents of hello.txt');

// add a file named 'some_image.jpg' from a local file 'path/to/image.jpg'

$zip->addFileFromPath('some_image.jpg', 'path/to/image.jpg');

// add a file named 'goodbye.txt' from an open stream resource

$fp = tmpfile();

fwrite($fp, 'The quick brown fox jumped over the lazy dog.');

rewind($fp);

$zip->addFileFromStream('goodbye.txt', $fp);

fclose($fp);

// finish the zip stream

$zip->finish();

You can also add comments, modify file timestamps, and customize (or

disable) the HTTP headers. It is also possible to specify the storage method when adding files,

the current default storage method is 'deflate' i.e files are stored with Compression mode 0x08.

See the Wiki for details.

Known issues

The native Mac OS archive extraction tool prior to macOS 10.15 might not open archives in some conditions. A workaround is to disable the Zip64 feature with the option $opt->setEnableZip64(false). This limits the archive to 4 Gb and 64k files but will allow users on macOS 10.14 and below to open them without issue. See #116.

The linux unzip utility might not handle properly unicode characters. It is recommended to extract with another tool like 7-zip. See #146.

It is the responsability of the client code to make sure that files are not saved with the same path, as it is not possible for the library to figure it out while streaming a zip. See #154.

Upgrade to version 2.0.0

Only the self opened streams will be closed (#139)

If you were relying on ZipStream to close streams that the library didn't open,

you'll need to close them yourself now.

Upgrade to version 1.0.0

All options parameters to all function have been moved from an array to structured option objects. See the wiki for examples.

The whole library has been refactored. The minimal PHP requirement has been raised to PHP 7.1.

Usage with Symfony and S3

You can find example code on the wiki.

Contributing

ZipStream-PHP is a collaborative project. Please take a look at the CONTRIBUTING.md file.

About the Authors

Contributors

Code Contributors

This project exists thanks to all the people who contribute. [Contribute].

68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f7a697073747265616d2f636f6e7472696275746f72732e7376673f77696474683d38393026627574746f6e3d66616c7365

Financial Contributors

Become a financial contributor and help us sustain our community. [Contribute]

Individuals

68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f7a697073747265616d2f696e646976696475616c732e7376673f77696474683d383930

Organizations

Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]

68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f7a697073747265616d2f6f7267616e697a6174696f6e2f302f6176617461722e737667

68747470733a2f2f6f70656e636f6c6c6563746976652e636f6d2f7a697073747265616d2f6f7267616e697a6174696f6e2f312f6176617461722e737667

3c17108d3c717a4c87fbd78eacc1a5c4.png

1721fbacc98b1bb4d8e2183d9d4734f9.png

3a664df115e0f8fb2f418bb237ed41d6.png

ca2e56ced1aa610b6c69f1bd7f27016b.png

15d79d91e0a05b3d6dce8ee76b290b53.png

ac7aa760ac90ca2a6a51a2c25d261e2a.png

fb5d8f73741358dce8aaa2b8800c8801.png

9829f4ff6dea8ecbf51761597ef35629.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值