49 lines
1.7 KiB
PHP
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;
|
|
}
|
|
} |