Automation/app/Libraries/MyStorage/FileLibrary.php
2024-09-14 20:54:31 +09:00

65 lines
2.1 KiB
PHP

<?php
namespace App\Libraries\MyStorage;
use App\Libraries\MyStorageLibrary;
use App\Traits\FileTrait;
class FileLibrary extends MyStorageLibrary
{
use FileTrait;
private $_uploadPath = "uploads";
private $_path = "";
private $_mimeType = "";
private $_fileSize = 0;
private $_fileSequence = 0;
private $_imageLibrary = null;
public function __construct(string $path)
{
parent::__construct();
$this->_path = $path;
}
final public function getUploadPath(): string
{
return $this->_uploadPath;
}
final public function getPath(): string
{
return $this->_path;
}
final public function getMimeType(): string
{
return $this->_mimeType;
}
final public function getFileSize(): int
{
return $this->_fileSize;
}
final public function getFileSequence(): int
{
return $this->_fileSequence;
}
public function save(): static
{
$fullPath = WRITEPATH . $this->getUploadPath() . DIRECTORY_SEPARATOR . $this->getPath();
$this->makeDirectory($fullPath);
$saveFilePath = $fullPath . DIRECTORY_SEPARATOR . $this->getOriginName();
//중복된 파일명인지 확인후 새로운 이름으로 저장
if (file_exists($saveFilePath)) {
$saveFile = $this->getUniqueFilename($fullPath, $this->getOriginName());
$saveFilePath = $fullPath . DIRECTORY_SEPARATOR . $saveFile;
log_message("notice", __FUNCTION__ . "파일명 변경 : 원본파일 {$this->getOriginName()}->저장파일 {$saveFile}");
$this->setOriginName($saveFile);
}
//원본이미지 저장
if (!file_put_contents($saveFilePath, $this->getOriginContent())) {
throw new \Exception(__FUNCTION__ . " 파일저장 실패:{$saveFilePath}");
}
$this->_mimeType = mime_content_type($saveFilePath);
$this->_fileSize = filesize($saveFilePath);
log_message("notice", __FUNCTION__ . " 원본파일 {$this->getOriginName()} 작업 완료");
return $this;
}
}