代码功能更新
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* mdeditor上传图片接口
|
||||
*/
|
||||
|
||||
namespace plugin\meditor\controller;
|
||||
|
||||
use app\service\ConfServiceFacade;
|
||||
use laytp\library\UploadDomain;
|
||||
use plugin\ali_oss\service\Oss;
|
||||
use plugin\qiniu_kodo\service\Kodo;
|
||||
use laytp\controller\Backend;
|
||||
use think\facade\Env;
|
||||
use think\facade\Filesystem;
|
||||
|
||||
class Common extends Backend
|
||||
{
|
||||
protected $noNeedLogin = ['*'];
|
||||
|
||||
//上传接口
|
||||
public function upload()
|
||||
{
|
||||
try {
|
||||
$uploadType = $this->request->param('upload_type', 'local');
|
||||
$file = $this->request->file('editormd-image-file'); // 获取上传的文件
|
||||
if (!$file) {
|
||||
return $this->error('上传失败,请选择需要上传的文件');
|
||||
}
|
||||
$fileExt = strtolower($file->getOriginalExtension());
|
||||
$uploadDomain = new UploadDomain();
|
||||
if (!$uploadDomain->check($file->getOriginalName(), $file->getSize(), $fileExt, $file->getMime())) {
|
||||
return $this->error($uploadDomain->getError());
|
||||
}
|
||||
$saveName = date("Ymd") . "/" . md5(uniqid(mt_rand())) . ".{$fileExt}";
|
||||
/**
|
||||
* 不能以斜杆开头
|
||||
* - 因为OSS存储时,不允许以/开头
|
||||
*/
|
||||
$uploadDir = $this->request->param('dir');
|
||||
$object = $uploadDir ? $uploadDir . '/' . $saveName : $saveName;//设置了上传目录的上传文件名
|
||||
|
||||
$inputValue = "";
|
||||
//上传至七牛云
|
||||
if ($uploadType == 'qiniu-kodo') {
|
||||
if(ConfServiceFacade::get('qiniuKodo.conf.switch') != 1){
|
||||
return $this->error('未开启七牛云KODO存储,请到七牛云KODO配置中开启');
|
||||
}
|
||||
$kodoConf = [
|
||||
'accessKey' => ConfServiceFacade::get('qiniuKodo.conf.accessKey'),
|
||||
'secretKey' => ConfServiceFacade::get('qiniuKodo.conf.secretKey'),
|
||||
'bucket' => ConfServiceFacade::get('qiniuKodo.conf.bucket'),
|
||||
'domain' => ConfServiceFacade::get('qiniuKodo.conf.domain'),
|
||||
];
|
||||
$kodo = Kodo::instance();
|
||||
$kodoRes = $kodo->upload($file->getPathname(), $object, $kodoConf);
|
||||
if ($kodoRes) {
|
||||
$inputValue = $kodoRes;
|
||||
} else {
|
||||
return $this->error($kodo->getError());
|
||||
}
|
||||
}
|
||||
|
||||
//上传至阿里云
|
||||
if ($uploadType == 'ali-oss') {
|
||||
if(ConfServiceFacade::get('system.aliOss.switch') != 1){
|
||||
return $this->error('未开启阿里云OSS存储,请到阿里云OSS配置中开启');
|
||||
}
|
||||
$ossConf = [
|
||||
'accessKeyID' => ConfServiceFacade::get('aliOss.conf.accessKeyID'),
|
||||
'accessKeySecret' => ConfServiceFacade::get('aliOss.conf.accessKeySecret'),
|
||||
'bucket' => ConfServiceFacade::get('aliOss.conf.bucket'),
|
||||
'endpoint' => ConfServiceFacade::get('aliOss.conf.endpoint'),
|
||||
'domain' => ConfServiceFacade::get('aliOss.conf.domain'),
|
||||
];
|
||||
$oss = Oss::instance();
|
||||
$ossUploadRes = $oss->upload($file->getPathname(), $object, $ossConf);
|
||||
if ($ossUploadRes) {
|
||||
$inputValue = $ossUploadRes;
|
||||
} else {
|
||||
return $this->error($oss->getError());
|
||||
}
|
||||
}
|
||||
|
||||
//本地上传
|
||||
if ($uploadType == 'local') {
|
||||
$uploadDir = ltrim('/', $uploadDir);
|
||||
$saveName = Filesystem::putFileAs('/' . $uploadDir, $file, '/' . $object);
|
||||
$staticDomain = Env::get('domain.static');
|
||||
if ($staticDomain) {
|
||||
$inputValue = $staticDomain . '/storage/' . $saveName;
|
||||
} else {
|
||||
$inputValue = request()->domain() . '/static/storage/' . $saveName;
|
||||
}
|
||||
}
|
||||
|
||||
return json(['url' => $inputValue, 'success' => 1]);
|
||||
} catch (\Exception $e) {
|
||||
return $this->exceptionError($e);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user