127 lines
2.4 KiB
PHP
127 lines
2.4 KiB
PHP
<?php
|
|
|
|
|
|
namespace app\admin\service\upload;
|
|
|
|
use app\admin\service\upload\driver\Alioss;
|
|
use app\admin\service\upload\driver\Qnoss;
|
|
use app\admin\service\upload\driver\Txcos;
|
|
use app\admin\service\upload\driver\Local;
|
|
use think\File;
|
|
|
|
/**
|
|
* 上传组件
|
|
* Class Uploadfile
|
|
* @package EasyAdmin\upload
|
|
*/
|
|
class Uploadfile
|
|
{
|
|
|
|
/**
|
|
* 当前实例对象
|
|
* @var object
|
|
*/
|
|
protected static $instance;
|
|
|
|
/**
|
|
* 上传方式
|
|
* @var string
|
|
*/
|
|
protected $uploadType = 'local';
|
|
|
|
/**
|
|
* 上传配置文件
|
|
* @var array
|
|
*/
|
|
protected $uploadConfig;
|
|
|
|
/**
|
|
* 需要上传的文件对象
|
|
* @var File
|
|
*/
|
|
protected $file;
|
|
|
|
/**
|
|
* 保存上传文件的数据表
|
|
* @var string
|
|
*/
|
|
protected $tableName = 'system_uploadfile';
|
|
|
|
/**
|
|
* 获取对象实例
|
|
* @return Uploadfile|object
|
|
*/
|
|
public static function instance()
|
|
{
|
|
if (is_null(self::$instance)) {
|
|
self::$instance = new static();
|
|
}
|
|
return self::$instance;
|
|
}
|
|
|
|
/**
|
|
* 设置上传对象
|
|
* @param $value
|
|
* @return $this
|
|
*/
|
|
public function setFile($value)
|
|
{
|
|
$this->file = $value;
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* 设置上传文件
|
|
* @param $value
|
|
* @return $this
|
|
*/
|
|
public function setUploadConfig($value)
|
|
{
|
|
$this->uploadConfig = $value;
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* 设置上传方式
|
|
* @param $value
|
|
* @return $this
|
|
*/
|
|
public function setUploadType($value)
|
|
{
|
|
$this->uploadType = $value;
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* 设置保存数据表
|
|
* @param $value
|
|
* @return $this
|
|
*/
|
|
public function setTableName($value)
|
|
{
|
|
$this->tableName = $value;
|
|
return $this;
|
|
}
|
|
|
|
/**
|
|
* 保存文件
|
|
* @return array|void
|
|
*/
|
|
public function save()
|
|
{
|
|
$obj = null;
|
|
if ($this->uploadType == 'local') {
|
|
$obj = new Local();
|
|
} elseif ($this->uploadType == 'oss') {
|
|
$obj = new Alioss();
|
|
} elseif ($this->uploadType == 'cos') {
|
|
$obj = new Txcos();
|
|
}
|
|
$save = $obj->setUploadConfig($this->uploadConfig)
|
|
->setUploadType($this->uploadType)
|
|
->setTableName($this->tableName)
|
|
->setFile($this->file)
|
|
->save();
|
|
return $save;
|
|
}
|
|
} |