tapi/app/service/FileService.php
u2nyakim ca6abacb5d up.
2025-08-26 17:56:48 +08:00

49 lines
1.7 KiB
PHP

<?php
namespace app\service;
use app\entity\SysFileRecord;
use app\entity\SysFileRule;
use app\entity\UploadFile;
use think\File;
use think\Service;
/**
* 文件服务
*/
class FileService extends Service
{
public function register(): void
{
/*
* 注册到全局容器中
*/
$this->app->bind('filesystem', $this);
}
public function upload(string $contextId, File $file, SysFileRule $rule): UploadFile
{
$sysFileRecord = new SysFileRecord;
// 存储规则相关
$sysFileRecord->set('rid', $rule->id); // ruleId
$sysFileRecord->set('disk', $rule->disk); // 存储disk
// 文件信息相关
$sysFileRecord->set('path',''); // 文件存储路径
$sysFileRecord->set('name', ''); // 文件名称
$sysFileRecord->set('length', (int)$file->getSize()); // 文件大小
$sysFileRecord->set('content_type', $file->getMime()); // 文件类型(mime)
$sysFileRecord->set('md5', $file->md5());// 文件md5
$sysFileRecord->set('sha1', $file->sha1()); // 文件sha1
$sysFileRecord->set('extension', $file->extension()); // 文件扩展名(extension)
$sysFileRecord->set('origin_name', $file->getFilename()); // 文件原始名称
$sysFileRecord->set('create_time', date('Y-m-d H:i:s')); // 文件记录创建时间
$sysFileRecord->set('create_date', date('Y-m-d')); // 文件记录创建日期
// 关联数据相关
$sysFileRecord->set('context_id', $contextId); // 来源上下文
// 返回UploadFile实体类
$uploadFile = new UploadFile();
$uploadFile->done($file, $sysFileRecord);
return $uploadFile;
}
}