stnvh/php-partialzip

There is no license information available for the latest version (0.2.1) of this package.

Download files located within remote ZIP files

0.2.1 2016-11-01 17:49 UTC

This package is not auto-updated.

Last update: 2024-04-13 14:08:02 UTC


README

PHP Partial Zip allows you to download files located within remote ZIP files.

Based on planetbeing/partial-zip.

Usage:

composer require stnvh/php-partialzip 0.2.x

Method usage:
__construct($url, $file = false):

Class init method

$p = new Partial('http://some.site.com/cats.zip');
index():

Returns a list of all the files in the remote directory

/*...*/

$list = $p->index(); # = ('cat.png', 'cat2.png', 'cat3.png')
find($fileName = false):

Returns a parsed file object for use when fetching the remote file

/*...*/

# Search and return other file objects
if($file = $p->find('cat2.png')) {
	# You can call methods here to fetch ZIP header information too
	# The full list of file header properties can be found in CDFile.php
	$size = $file->size(); # size in bytes
	$fullName = $file->name(); # full file name in zip, including path
}
get($file):

Returns, or outputs the file fetched from the remote ZIP.

Note: You should ensure no content is outputted before echo-ing ->get() as this will cause the file download to contain invalid data. Hint: put ob_start() at the start of your script, then run ob_clean() before output.

/*...*/

if($file = $p->find('cat3.png')) {
    $fileData = $p->get($file);
}
example:
<?php

require 'vendor/autoload.php';

use Stnvh\Partial\Zip as Partial;

ob_start(); # will capture all output

$p = new Partial('http://some.site.com/cats.zip');

# Get file object
if($file = $p->find('cat.png')) {
	# removes everything from current output to ensure file downloads correctly
    ob_clean();

    # Set appropriate headers and output to browser:
	header(sprintf('Content-Disposition: attachment; filename="%s"', $file->filename));
	header(sprintf('Content-Length: %d', $file->size));

    echo $p->get($file);
}