diff --git a/app/common/service/UploadService.php b/app/common/service/UploadService.php index a14fb61..894c4fe 100644 --- a/app/common/service/UploadService.php +++ b/app/common/service/UploadService.php @@ -2,9 +2,11 @@ namespace app\common\service; +use app\admin\model\SystemUploadfile; use think\facade\Filesystem; use think\facade\Validate; use think\File; +use think\file\UploadedFile; class UploadService { @@ -31,7 +33,7 @@ class UploadService if (!is_null($allow_size)) { $uploadConfig['upload_allow_size'] = $allow_size; } - + $rule = [ 'upload_type|指定上传类型有误' => "in:{$uploadConfig['upload_allow_type']}", 'file|文件' => "require|file|fileExt:{$uploadConfig['upload_allow_ext']}|fileSize:{$uploadConfig['upload_allow_size']}", @@ -51,6 +53,21 @@ class UploadService public function save(File $file) { + $model_file = new SystemUploadfile(); + + $model_file->upload_type = $this->uploadType; + $model_file->file_ext = strtolower($file->extension()); + + + if ($file instanceof UploadedFile) { + + $model_file->original_name = $file->getOriginalName(); + $model_file->mime_type = $file->getOriginalMime(); + } else { + $model_file->original_name = $file->getFilename(); + $model_file->mime_type = $file->getMime(); + } + $save_name = Filesystem::disk($this->uploadType)->putFile('upload', $file, function () { return date('Ymd') . DIRECTORY_SEPARATOR . uniqid(); @@ -58,6 +75,15 @@ class UploadService $url = build_upload_url($save_name); + $model_file->url = $url; + $model_file->save_name = $save_name; + + $model_file->sha1 = $file->sha1(); + + + $model_file->file_size = $file->getSize(); + + $model_file->save(); return [ 'url' => $url, 'save_name' => $save_name diff --git a/database/migrations/20220419034810_system_uploadfile.php b/database/migrations/20220419034810_system_uploadfile.php index 1085f6b..fe7bc5c 100644 --- a/database/migrations/20220419034810_system_uploadfile.php +++ b/database/migrations/20220419034810_system_uploadfile.php @@ -32,7 +32,8 @@ class SystemUploadfile extends Migrator ->setComment('上传文件表') ->addColumn(Column::char('upload_type', 20)->setDefault('local')->setComment('存储位置')) ->addColumn(Column::char('original_name')->setDefault('')->setComment('文件原名')) - ->addColumn(Column::char('url')->setDefault('')->setComment('物理路径')) + ->addColumn(Column::char('url')->setDefault('')->setComment('链接')) + ->addColumn(Column::char('save_name')->setDefault('')->setComment('存储名称')) ->addColumn(Column::char('image_width', 30)->setDefault('')->setComment('宽度')) ->addColumn(Column::char('image_height', 30)->setDefault('')->setComment('高度')) ->addColumn(Column::integer('image_frames', 10)->setUnsigned()->setDefault(0)->setComment('图片帧数'))