2023-11-21 11:51:27 +08:00
|
|
|
|
<?php
|
|
|
|
|
// +----------------------------------------------------------------------
|
|
|
|
|
// | likeadmin快速开发前后端分离管理后台(PHP版)
|
|
|
|
|
// +----------------------------------------------------------------------
|
|
|
|
|
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
|
|
|
|
|
// | 开源版本可自由商用,可去除界面版权logo
|
|
|
|
|
// | gitee下载:https://gitee.com/likeshop_gitee/likeadmin
|
|
|
|
|
// | github下载:https://github.com/likeshop-github/likeadmin
|
|
|
|
|
// | 访问官网:https://www.likeadmin.cn
|
|
|
|
|
// | likeadmin团队 版权所有 拥有最终解释权
|
|
|
|
|
// +----------------------------------------------------------------------
|
|
|
|
|
// | author: likeadminTeam
|
|
|
|
|
// +----------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
namespace app\api\controller;
|
|
|
|
|
|
|
|
|
|
use app\common\enum\FileEnum;
|
2024-01-08 16:17:59 +08:00
|
|
|
|
use app\common\model\file\File;
|
2023-11-21 11:51:27 +08:00
|
|
|
|
use app\common\service\UploadService;
|
|
|
|
|
use Exception;
|
|
|
|
|
use think\response\Json;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** 上传文件
|
|
|
|
|
* Class UploadController
|
|
|
|
|
* @package app\api\controller
|
|
|
|
|
*/
|
|
|
|
|
class UploadController extends BaseApiController
|
|
|
|
|
{
|
2024-01-08 16:17:59 +08:00
|
|
|
|
public array $notNeedLogin=['uploadVideoCover'];
|
2023-11-21 11:51:27 +08:00
|
|
|
|
/**
|
|
|
|
|
* @notes 上传图片
|
|
|
|
|
* @return Json
|
|
|
|
|
* @author 段誉
|
|
|
|
|
* @date 2022/9/20 18:11
|
|
|
|
|
*/
|
|
|
|
|
public function image()
|
|
|
|
|
{
|
|
|
|
|
try {
|
|
|
|
|
$result = UploadService::image(0, $this->userId,FileEnum::SOURCE_USER);
|
2023-11-25 09:12:25 +08:00
|
|
|
|
return $this->success('上传成功', ['url'=>env('project.project_url').'/'.$result['url']]);
|
2023-11-21 11:51:27 +08:00
|
|
|
|
} catch (Exception $e) {
|
|
|
|
|
return $this->fail($e->getMessage());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2024-01-08 11:25:35 +08:00
|
|
|
|
public function uploadVideoCover()
|
|
|
|
|
{
|
|
|
|
|
try {
|
|
|
|
|
$deviceId = $this->request->param('device_id', '');
|
2024-01-08 16:17:59 +08:00
|
|
|
|
// Base64编码的图片字符串
|
|
|
|
|
$base64Image = $this->request->param('image'); // 这里只展示部分内容
|
|
|
|
|
|
|
|
|
|
// 去除前面的"data:"标识
|
|
|
|
|
$base64Data = substr($base64Image, strpos($base64Image, ',') + 1);
|
|
|
|
|
|
|
|
|
|
// 将Base64编码的图片字符串转换为二进制数据
|
|
|
|
|
$binaryData = base64_decode($base64Data);
|
|
|
|
|
|
|
|
|
|
// 创建图像对象
|
|
|
|
|
$imageObject = imagecreatefromstring($binaryData);
|
|
|
|
|
$saveDir = 'uploads/images/' . date('Ymd'). '/';
|
|
|
|
|
if (!is_dir($saveDir)) {
|
|
|
|
|
mkdir($saveDir, 0755, true);
|
|
|
|
|
}
|
|
|
|
|
$fileName = uniqid().'.png';
|
|
|
|
|
|
|
|
|
|
// 保存图片
|
|
|
|
|
imagepng($imageObject, $saveDir.$fileName);
|
|
|
|
|
|
|
|
|
|
$file = File::create([
|
|
|
|
|
'cid' => $deviceId,
|
|
|
|
|
'type' => FileEnum::IMAGE_TYPE,
|
|
|
|
|
'name' => $fileName,
|
|
|
|
|
'uri' => $saveDir . $fileName,
|
|
|
|
|
'source' => FileEnum::SOURCE_USER,
|
|
|
|
|
'source_id' => $this->userId,
|
|
|
|
|
'create_time' => time(),
|
|
|
|
|
]);
|
|
|
|
|
return $this->success('上传成功', ['url'=>env('project.project_url').'/'.$saveDir.$fileName]);
|
2024-01-08 11:25:35 +08:00
|
|
|
|
} catch (Exception $e) {
|
|
|
|
|
return $this->fail($e->getMessage());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2023-11-21 11:51:27 +08:00
|
|
|
|
|
|
|
|
|
}
|