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