mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-12-25 22:20:29 +01:00
102 lines
2.0 KiB
PHP
102 lines
2.0 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Xentral\Components\Mailer\Data;
|
|
|
|
use SplFileInfo;
|
|
use Xentral\Components\Mailer\Exception\FileNotFoundException;
|
|
|
|
final class FileAttachment implements EmailAttachmentInterface
|
|
{
|
|
/** @var SplFileInfo $file */
|
|
private $file;
|
|
|
|
/** @var string $name */
|
|
private $name;
|
|
|
|
/** @var string $encoding */
|
|
private $encoding;
|
|
|
|
/** @var string $type */
|
|
private $type;
|
|
|
|
/** @var string $disposition */
|
|
private $disposition;
|
|
|
|
/**
|
|
* @param string $path
|
|
* @param string|null $name
|
|
* @param string $encoding
|
|
* @param string $type
|
|
* @param string $disposition
|
|
*/
|
|
public function __construct(
|
|
string $path,
|
|
string $name = null,
|
|
string $encoding = self::ENCODING_BASE64,
|
|
string $type = 'application/octet-stream',
|
|
string $disposition = self::DISPOSITION_ATTACHMENT
|
|
)
|
|
{
|
|
$this->file = new splFileInfo($path);
|
|
if (!$this->file->isFile()) {
|
|
throw new FileNotFoundException(
|
|
sprintf('Attachment File not found "%s".', $path)
|
|
);
|
|
}
|
|
$this->name = $name === null ? $this->file->getFilename() : $name;
|
|
$this->encoding = $encoding;
|
|
$this->type = $type;
|
|
$this->disposition = $disposition;
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function getPath():string
|
|
{
|
|
return $this->file->getRealPath();
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function getName():string
|
|
{
|
|
return $this->name;
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function getEncoding():string
|
|
{
|
|
return $this->encoding;
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function getType():string
|
|
{
|
|
return $this->type;
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function getDisposition(): string
|
|
{
|
|
return $this->disposition;
|
|
}
|
|
|
|
/**
|
|
* @return string
|
|
*/
|
|
public function __toString():string
|
|
{
|
|
return (string)$this->file;
|
|
}
|
|
}
|