php-extended / php-api-endpoint-http-zip
此包已废弃,不再维护。作者建议使用php-extended/php-http-client-zip包。
php-extended/php-api-endpoint-http-interface的实现,当查询响应时动态解压数据。
6.0.5
2023-08-13 13:51 UTC
Requires
- php: >=7.4
- ext-zip: *
- php-extended/php-api-endpoint-http-interface: ^6.1
- php-extended/polyfill-php80-stringable: ^1.2
Requires (Dev)
This package is auto-updated.
Last update: 2023-08-15 18:46:02 UTC
README
php-extended/php-api-endpoint-http-interface的实现,当查询响应时动态解压数据。
安装
此库的安装通过composer进行,所有类的自动加载通过其自动加载器进行。
- 从他们的网站下载
composer.phar
。 - 然后运行以下命令将此库作为依赖项安装
php composer.phar php-extended/php-api-endpoint-http-zip ^6
基本用法
此库需要多个条件才能运行
- 首先,请求必须包含一个指向现有可写目录中可能有效文件的
X-Php-Download-File
头部。这是http客户端将下载文件的下载位置。 - 其次,一个支持
X-Php-Download-File
头部的http客户端,将写入http请求的正文到该文件。 - 第三,http客户端必须在响应中设置一个指向该相同文件的
X-Request-Header-X-Php-Download-File
头部。如果没有,它可能会设置一个X-Php-Download-File
头部。 - 第四,http客户端必须提供一个指向该文件的流作为响应。
此端点所做的是,对于每次请求文件,它都会尝试在同一目录中将其解压为新的名称。它将替换请求中现有的X-Request-Header-X-Php-Download-File
和X-Php-Download-File
头部,以指向新的未压缩文件,并将响应的流更改为指向新文件的新流。如果解压缩操作成功,将删除请求中X-Php-Download-File
头部请求的旧文件。
/* @var $httpEndpoint \PhpExtended\Endpoint\EndpointInterface */
$zipEndpoint = new ZipHttpEndpoint($httpEndpoint);
$stream = $zipEndpoint->httpGet($zipEndpoint->createUri('https://example.com/path/to/file.zip'), [
'X-Php-Download-File' => '/tmp/file.zip',
]);
/* @var $stream \Psr\Http\Message\StreamInterface */
一旦你完成流的使用,你可以删除该文件(使用流的元数据可以找到文件名)。或者,使用$zipEndpoint->httpGetResponse()
你将获得http响应而不是仅流,并且可以通过X-Php-Download-File
头部获取文件路径。
许可证
MIT(见许可证文件)。