Class File1
Class File1
{
/**
* @var string The path to the file on the system.
*/
protected $path;
/**
* @var int The maximum bytes to read. Defaults to -1 (read all the remaining
buffer).
*/
private $maxLength;
/**
* @var int Seek to the specified offset before reading. If this number is
negative, no seeking will occur and reading will start from the current position.
*/
private $offset;
/**
* @var resource The stream pointing to the file.
*/
protected $stream;
/**
* Creates a new FacebookFile entity.
*
* @param string $filePath
* @param int $maxLength
* @param int $offset
*
* @throws FacebookSDKException
*/
public function __construct($filePath, $maxLength = -1, $offset = -1)
{
$this->path = $filePath;
$this->maxLength = $maxLength;
$this->offset = $offset;
$this->open();
}
/**
* Closes the stream when destructed.
*/
public function __destruct()
{
$this->close();
}
/**
* Opens a stream for the file.
*
* @throws FacebookSDKException
*/
public function open()
{
if (!$this->isRemoteFile($this->path) && !is_readable($this->path)) {
throw new FacebookSDKException('Failed to create FacebookFile entity.
Unable to read resource: ' . $this->path . '.');
}
if (!$this->stream) {
throw new FacebookSDKException('Failed to create FacebookFile entity.
Unable to open resource: ' . $this->path . '.');
}
}
/**
* Stops the file stream.
*/
public function close()
{
if (is_resource($this->stream)) {
fclose($this->stream);
}
}
/**
* Return the contents of the file.
*
* @return string
*/
public function getContents()
{
return stream_get_contents($this->stream, $this->maxLength, $this->offset);
}