public function save($file)
{
switch ($this->mode) {
case self::MODE_DATA:
return file_put_contents($file, $this->content) !== false;
break;
case self::MODE_UPLOAD:
return move_uploaded_file($this->filename, $file) !== false;
break;
case self::MODE_FILE:
return copy($this->filename, $file);
break;
case self::MODE_STREAM:
$dest = fopen($file, 'w+');
stream_copy_to_stream($this->stream, $dest);
fclose($this->stream);
return fclose($dest);
break;
}
}