87 lines
2.7 KiB
PHP
Executable File
87 lines
2.7 KiB
PHP
Executable File
<?php
|
|
|
|
namespace app\admin\controller;
|
|
|
|
use app\common\server\Upload as uploadss;
|
|
use \think\facade\Db;
|
|
use \OSS\Core\OssException;
|
|
use \OSS\OssClient;
|
|
|
|
class Upload extends Base
|
|
{
|
|
/**
|
|
* 上传图片
|
|
*/
|
|
public function picture()
|
|
{
|
|
// 获取表单上传文件
|
|
$files = request()->file();
|
|
try {
|
|
validate(['image' => 'filesize:10240|fileExt:jpg|image:200,200,jpg'])
|
|
->check($files);
|
|
$savename = [];
|
|
foreach ($files as $file) {
|
|
$savename = \think\facade\Filesystem::disk('public')->putFile('topic', $file);
|
|
$hash = $file->hash('sha1');
|
|
}
|
|
} catch (\think\exception\ValidateException $e) {
|
|
return $this->renderError($e->getMessage());
|
|
}
|
|
$savename = '/storage/' . $savename;
|
|
|
|
$savename = str_replace('\\', '/', $savename);
|
|
|
|
$pic = Db::name('picture')->where('token', $hash)->find();
|
|
if ($pic) {
|
|
$return['id'] = $pic['id'];
|
|
$return['path'] = imageUrl($pic['imgurl']);
|
|
$return['imgurl'] = $pic['imgurl'];
|
|
unlink('.' . $savename);
|
|
return $this->renderSuccess('上传成功', $return);
|
|
}
|
|
//判断是否开始阿里云存储
|
|
$config = getConfig('uploads');
|
|
|
|
if ($config['type'] == 2) {
|
|
$oss_path = $hash . '.jpg';
|
|
$path = $this->aliyunupload($oss_path, '.' . $savename);
|
|
unlink('.' . $savename);
|
|
$savename = $path;
|
|
}
|
|
//新增数据
|
|
$save_data['imgurl'] = $savename;
|
|
$save_data['token'] = $hash;
|
|
$save_data['addtime'] = time();
|
|
$save_data['status'] = 1;
|
|
$resultId = Db::name('picture')->insertGetId($save_data);
|
|
if ($resultId) {
|
|
$return['id'] = $resultId;
|
|
$return['path'] = imageUrl($savename);
|
|
$return['imgurl'] = $savename;
|
|
return $this->renderSuccess('上传成功', $return);
|
|
} else {
|
|
return $this->renderError('上传失败');
|
|
}
|
|
|
|
}
|
|
|
|
|
|
//图片上传云存储(阿里云)
|
|
public function aliyunupload($filename, $file_path)
|
|
{
|
|
// $upload = new Uploadss;
|
|
// $data = $upload->uploadFile($filename, $file_path);
|
|
require_once '../extend/oss/autoload.php';
|
|
|
|
$config = getConfig('uploads');
|
|
$accessKeyId = $config['AccessKeyId'];
|
|
$accessKeySecret = $config['AccessKeySecret'];
|
|
$endpoint = $config['url'];
|
|
$bucket = $config['Bucket'];
|
|
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
|
|
$data = $ossClient->uploadFile($bucket, $filename, $file_path);
|
|
dd($data);
|
|
return $data;
|
|
}
|
|
}
|