You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
145 lines
4.1 KiB
145 lines
4.1 KiB
<?php
|
|
// +----------------------------------------------------------------------
|
|
// | Niucloud-admin 企业快速开发的多应用管理平台
|
|
// +----------------------------------------------------------------------
|
|
// | 官方网址:https://www.niucloud.com
|
|
// +----------------------------------------------------------------------
|
|
// | niucloud团队 版权所有 开源版本可自由商用
|
|
// +----------------------------------------------------------------------
|
|
// | Author: Niucloud Team
|
|
// +----------------------------------------------------------------------
|
|
|
|
namespace app\api\controller\upload;
|
|
|
|
use app\service\api\upload\Base64Service;
|
|
use app\service\api\upload\FetchService;
|
|
use app\service\api\upload\UploadService;
|
|
use core\base\BaseApiController;
|
|
use think\Request;
|
|
use think\Response;
|
|
|
|
class Upload extends BaseApiController
|
|
{
|
|
|
|
/**
|
|
* 图片上传
|
|
* @return Response
|
|
*/
|
|
public function image(Request $request){
|
|
|
|
$extraData = $request->all();
|
|
|
|
$data = $this->request->params([
|
|
['file', 'file'],
|
|
]);
|
|
$upload_service = new UploadService();
|
|
|
|
$res = $upload_service->image($data['file'],$extraData);
|
|
|
|
$res['ext'] = ''; // 初始化文件扩展名
|
|
$res['name'] = ''; // 初始化文件名称
|
|
if (isset($res['url'])) {
|
|
$res['ext'] = pathinfo($res['url'], PATHINFO_EXTENSION);
|
|
$res['name'] = basename($res['url']);
|
|
}
|
|
|
|
return success($res);
|
|
}
|
|
|
|
/**
|
|
* 视频上传
|
|
* @return Response
|
|
*/
|
|
public function video(){
|
|
$data = $this->request->params([
|
|
['file', 'file'],
|
|
]);
|
|
$upload_service = new UploadService();
|
|
$res = $upload_service->video($data['file']);
|
|
|
|
$res['ext'] = ''; // 初始化文件扩展名
|
|
$res['name'] = ''; // 初始化文件名称
|
|
if (isset($res['url'])) {
|
|
$res['ext'] = pathinfo($res['url'], PATHINFO_EXTENSION);
|
|
$res['name'] = basename($res['url']);
|
|
}
|
|
|
|
return success($res);
|
|
}
|
|
|
|
/**
|
|
* 远程图片拉取
|
|
* @return Response
|
|
*/
|
|
public function imageFetch(){
|
|
$data = $this->request->params([
|
|
['url', ''],
|
|
]);
|
|
$fetch_service = new FetchService();
|
|
return success($fetch_service->image($data['url']));
|
|
}
|
|
|
|
|
|
/**
|
|
* base64图片上传
|
|
* @return Response
|
|
*/
|
|
public function imageBase64(){
|
|
$data = $this->request->params([
|
|
['content', ''],
|
|
]);
|
|
$base64_service = new Base64Service();
|
|
return success($base64_service->image($data['content']));
|
|
}
|
|
|
|
/**
|
|
* 头像上传(无token验证)
|
|
* @return Response
|
|
*/
|
|
public function avatar(Request $request){
|
|
$extraData = $request->all();
|
|
|
|
$data = $this->request->params([
|
|
['file', 'file'],
|
|
]);
|
|
$upload_service = new UploadService();
|
|
|
|
$res = $upload_service->avatar($data['file'],$extraData);
|
|
|
|
$res['ext'] = ''; // 初始化文件扩展名
|
|
$res['name'] = ''; // 初始化文件名称
|
|
if (isset($res['url'])) {
|
|
$res['ext'] = pathinfo($res['url'], PATHINFO_EXTENSION);
|
|
$res['name'] = basename($res['url']);
|
|
}
|
|
|
|
return success($res);
|
|
}
|
|
|
|
/**
|
|
* 文档上传
|
|
* @return Response
|
|
*/
|
|
public function document(Request $request){
|
|
$data = $this->request->params([
|
|
['file', 'file'],
|
|
['type', 'document'], // 文档类型,默认为document
|
|
]);
|
|
|
|
try {
|
|
$upload_service = new UploadService();
|
|
$res = $upload_service->document($data['file'], $data['type']);
|
|
|
|
$res['ext'] = ''; // 初始化文件扩展名
|
|
$res['name'] = ''; // 初始化文件名称
|
|
if (isset($res['url'])) {
|
|
$res['ext'] = pathinfo($res['url'], PATHINFO_EXTENSION);
|
|
$res['name'] = basename($res['url']);
|
|
}
|
|
|
|
return success($res);
|
|
} catch (\Exception $e) {
|
|
return fail('文档上传失败:' . $e->getMessage());
|
|
}
|
|
}
|
|
}
|
|
|