Vendor bunch upload of nelexa library
This commit is contained in:
81
vendor/nelexa/zip/src/Model/Data/ZipFileData.php
vendored
Normal file
81
vendor/nelexa/zip/src/Model/Data/ZipFileData.php
vendored
Normal file
@ -0,0 +1,81 @@
|
||||
<?php
|
||||
|
||||
namespace PhpZip\Model\Data;
|
||||
|
||||
use PhpZip\Exception\ZipException;
|
||||
use PhpZip\Model\ZipData;
|
||||
use PhpZip\Model\ZipEntry;
|
||||
|
||||
/**
|
||||
* Class ZipFileData.
|
||||
*/
|
||||
class ZipFileData implements ZipData
|
||||
{
|
||||
/** @var \SplFileInfo */
|
||||
private $file;
|
||||
|
||||
/**
|
||||
* ZipStringData constructor.
|
||||
*
|
||||
* @param ZipEntry $zipEntry
|
||||
* @param \SplFileInfo $fileInfo
|
||||
*
|
||||
* @throws ZipException
|
||||
*/
|
||||
public function __construct(ZipEntry $zipEntry, \SplFileInfo $fileInfo)
|
||||
{
|
||||
if (!$fileInfo->isFile()) {
|
||||
throw new ZipException('$fileInfo is not a file.');
|
||||
}
|
||||
|
||||
if (!$fileInfo->isReadable()) {
|
||||
throw new ZipException('$fileInfo is not readable.');
|
||||
}
|
||||
|
||||
$this->file = $fileInfo;
|
||||
$zipEntry->setUncompressedSize($fileInfo->getSize());
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws ZipException
|
||||
*
|
||||
* @return resource returns stream data
|
||||
*/
|
||||
public function getDataAsStream()
|
||||
{
|
||||
if (!$this->file->isReadable()) {
|
||||
throw new ZipException(sprintf('The %s file is no longer readable.', $this->file->getPathname()));
|
||||
}
|
||||
|
||||
return fopen($this->file->getPathname(), 'rb');
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws ZipException
|
||||
*
|
||||
* @return string returns data as string
|
||||
*/
|
||||
public function getDataAsString()
|
||||
{
|
||||
if (!$this->file->isReadable()) {
|
||||
throw new ZipException(sprintf('The %s file is no longer readable.', $this->file->getPathname()));
|
||||
}
|
||||
|
||||
return file_get_contents($this->file->getPathname());
|
||||
}
|
||||
|
||||
/**
|
||||
* @param resource $outStream
|
||||
*
|
||||
* @throws ZipException
|
||||
*/
|
||||
public function copyDataToStream($outStream)
|
||||
{
|
||||
try {
|
||||
$stream = $this->getDataAsStream();
|
||||
stream_copy_to_stream($stream, $outStream);
|
||||
} finally {
|
||||
fclose($stream);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user