作者 邓超

自定义

... ... @@ -68,7 +68,7 @@ zFePUMXy1bFghAfzNKlrc5XgH4ixeeMh3cDtU97K
public function deleted_profiles($data){
$param = [
'title'=>$data['title'],
'profileKey'=>$this->profile_key,
// 'profileKey'=>$this->profile_key,
];
$url = $this->path.'/api/profiles/profile';
return $this->http_click('delete',$url,$param);
... ... @@ -126,15 +126,13 @@ zFePUMXy1bFghAfzNKlrc5XgH4ixeeMh3cDtU97K
* @time :2023/5/8 9:47
* https://app.ayrshare.com/api/media/upload
*/
public function post_media_upload($data){
public function post_media_upload($data,$api_key){
$param = [
'file'=>$data['file'],//base64编码
'fileName'=>$data['file_name'],//生成图片名称
'description'=>$data['description'],//描述
];
$this->headers['Authorization'] = $this->headers['Authorization'].$data['profile_key'];
$this->headers['Authorization'] = $this->headers['Authorization'].$api_key;
$url = $this->path.'/api/media/upload';
return $this->http_click('posts',$url,$param,$this->headers);
return $this->http_click('post',$url,$param,$this->headers);
}
/**
... ...
... ... @@ -5,21 +5,44 @@ namespace App\Http\Controllers\Bside\AyrShare;
use App\Enums\Common\Code;
use App\Helper\AyrShare as AyrShareHelper;
use App\Http\Controllers\Bside\BaseController;
use App\Http\Controllers\Bside\FileController;
use App\Http\Controllers\file\ImageController;
use App\Http\Logic\Bside\AyrShare\AyrReleaseLogic;
use App\Http\Logic\Bside\AyrShare\AyrShareLogic;
use App\Models\File\Image;
use App\Models\File\Image as ImageModel;
/**
* @name:社交发布
* Facebook Pages and Groups: 10 images, including a carousel post.
* Instagram: 10 images.
* Google : 1 image.
* LinkedIn: 9 images.
* Pinterest: 1 image.
* Reddit: 1 image.
* Telegram: 1 image.
* Twitter:4 image
*/
class AyrReleaseController extends BaseController
{
/**
* @name :(获取发送数据详情)info
* @author :lyh
* @method :post
* @time :2023/5/10 14:57
*/
public function info(AyrReleaseLogic $ayrReleaseLogic){
$info = $ayrReleaseLogic->release_info();
$this->response('success',Code::SUCCESS,$info);
}
/**
* @name :(获取当前用户已绑定的社交链接)info
* @author :lyh
* @method :post
* @time :2023/5/9 16:00
*/
public function info(AyrShareLogic $ayrShareLogic){
public function share_info(AyrShareLogic $ayrShareLogic){
$info = $ayrShareLogic->ayr_share_info();
$this->response('success',Code::SUCCESS,$info);
}
... ... @@ -29,80 +52,74 @@ class AyrReleaseController extends BaseController
* @method :post
* @time :2023/5/9 9:36
*/
public function send_post(AyrReleaseLogic $ayrReleaseLogic,AyrShareLogic $ayrShareLogic){
// DB::beginTransaction();
// try {
public function send_post(AyrReleaseLogic $ayrReleaseLogic,AyrShareLogic $ayrShareLogic,AyrShareHelper $ayrShare){
//获取发送账号详情
$share_info = $ayrShareLogic->ayr_share_info();
$data = [
'images'=>$this->param['images'],
'files'=>$this->param['video'],
];
//参数处理
$this->param['mediaUrls'] = $ayrReleaseLogic->image_file_param($data);;
//统一生成发布
$param = [
'post'=>$this->param['content'],
'platforms'=>$this->param['platforms'],
'mediaUrls'=>$this->param['mediaUrls'],//参数处理
'idempotencyKey'=>$this->param['idempotency_key'],//时间(如是过去时间,立即发布)
];
//发送请求发布社交文章
$res = $ayrShare->post_send_msg($param,$share_info['profile_key']);
//保存数据库
$ayrReleaseLogic->release_add();
$this->response('success',Code::SUCCESS,$res);
}
/**
* @name :(图片上传到第三方平台)send_media
* @author :lyh
* @method :post
* @time :2023/5/10 14:07
*/
public function send_media(AyrShareLogic $ayrShareLogic,AyrShareHelper $ayrShare){
$image_info = $ayrShareLogic->save_img_info($this->param['hash']);
if(empty($image_info['ayr_id'])){
//获取发送账号详情
$share_info = $ayrShareLogic->ayr_share_info();
$data = [
'images'=>$this->param['image'],
'files'=>$this->param['file'],
];
//参数处理
$image_data = $this->image_file_param($data);
$this->param['mediaUrls'] = array_merge($image_data['images_link'],$image_data['files_link']);
var_dump($this->param);
die();
//统一生成链接
//获取当前图片数据是否已上传到第三方
$arr = (new ImageController())->index($this->param['hash']);
//向第三方存储图片
$param = [
'post'=>$this->param['content'],
'platforms'=>$this->param['platforms'],
'mediaUrls'=>$this->param['mediaUrls'],//参数处理
'file'=>($arr->original),//base64编码
];
//发送请求注册社交用户
$ayrShareHelper = new AyrShareHelper();
$res = $ayrShareHelper->post_send_msg($param,$share_info['profile_key']);
$this->response('success',Code::SUCCESS,$res);
//保存数据库
$ayrReleaseLogic->release_add();
// DB::commit();
// }catch (\Exception $e){
// DB::rollBack();
// $this->response('error',Code::USER_ERROR);
// }
$param_data = $ayrShare->post_media_upload($param,$share_info['profile_key']);
//更新图片库
$ayrShareLogic->save_img($param_data);
}
$this->response('success');
}
/**
* @name :(上传第三方参数参数)get_param
* @name :(文件上传到第三方平台)send_media
* @author :lyh
* @method :post
* @time :2023/5/10 10:27
* @time :2023/5/10 14:07
*/
public function image_file_param($data) {
if (empty($data) || !is_array($data)) {
return empty($data) ? is_array($data) ? [] : '' : $data;
}
foreach ($data as $k => $v) {
if (is_array($v)) {
$data[$k] = $this->_extents($v);
} else {
if (is_null($v)) {
$data[$k] = '';
continue;
}
//获取操作人
switch ((string) $k) {
case 'image':
$data['image_link'] = url('/b/image/' . $v . '/2');
break;
case 'images':
$v = explode(',',$v);
foreach ($v as $k1=>$v1){
$data['images_link'][$k1] = url('/b/image/' . $v1 . '/2');
}
break;
case 'file':
$data['file_link'] = url('/b/file_hash/' . $v .'/mp4');
break;
case 'files':
$v = explode(',',$v);
foreach ($v as $k1=>$v1){
$data['files_link'][$k1] = url('/b/file_hash/' . $v1 . '/mp4');
}
break;
}
}
public function send_media_file(AyrShareLogic $ayrShareLogic,AyrShareHelper $ayrShare){
$image_info = $ayrShareLogic->save_file_info($this->param['hash']);
if(empty($image_info['ayr_id'])){
//获取发送账号详情
$share_info = $ayrShareLogic->ayr_share_info();
//获取当前图片数据是否已上传到第三方
$arr = (new FileController())->index($this->param['hash']);
//向第三方存储图片
$param = [
'file'=>($arr->original),//base64编码
];
$param_data = $ayrShare->post_media_upload($param,$share_info['profile_key']);
//更新图片库
$ayrShareLogic->save_file($param_data);
}
return $data;
$this->response('success');
}
}
... ...
... ... @@ -13,6 +13,8 @@ use App\Models\AyrShare\AyrShare as AyrShareModel;
*/
class AyrShareController extends BaseController
{
//生成名称前缀
const TITLE = 'global_so_';
/**
* @name :(社交列表)lists
* @author :lyh
... ... @@ -20,7 +22,10 @@ class AyrShareController extends BaseController
* @time :2023/5/5 16:06
*/
public function lists(AyrShareModel $ayrShareModel){
$lists = $ayrShareModel->lists($this->map,$this->page,$this->row,'id',['*']);
//授权配置列表
$share_list = $ayrShareModel->platforms;
$lists = $ayrShareModel->lists($this->map,$this->page,$this->row,'id',['id','name','bind_plat_from','operator_id','created_at','updated_at']);
$lists['share_list'] = $share_list;
$this->response('列表',Code::SUCCESS,$lists);
}
... ... @@ -36,9 +41,13 @@ class AyrShareController extends BaseController
$share_info = $ayrShareHelper->get_profiles_users($info['profile_key']);
if(isset($share_info['activeSocialAccounts'])){
$str = json_encode($share_info['activeSocialAccounts']);
$ayrShareLogic->ayr_share_edit(['bind_plat_from'=>$str]);
if($str != $info['bind_plat_from']){
$res = $ayrShareLogic->ayr_share_edit(['bind_plat_from'=>$str]);
}else{
$res = false;
}
}
$this->response('success');
$this->response('success',Code::SUCCESS,['is_true'=>$res]);
}
/**
* @name :(创建ayr_share账户)create_account
... ... @@ -48,7 +57,7 @@ class AyrShareController extends BaseController
*/
public function create_account(AyrShareLogic $ayrShareLogic){
$param = [
'title'=>md5(uniqid().time()),
'title'=>self::TITLE.$this->user['project_id'].':'.$this->param['name'],
];
//发送请求注册社交用户
$ayrShareHelper = new AyrShareHelper();
... ...
... ... @@ -33,7 +33,7 @@ class FileController
{
$this->request = request();
$this->config = config('filesystems.disks.upload');
$this->uploads = config('uploads.default_file');
$this->uploads = config('upload.default_file');
$this->path = $this->config['root'].$this->uploads['path'].'/';
}
... ... @@ -44,13 +44,15 @@ class FileController
* @method :post
* @time :2023/5/9 9:15
*/
public function index($hash = '',$type = 1){
public function index($hash = '', $type = 1)
{
// 检查是否有修改日期或ETag头部
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) || isset($_SERVER['HTTP_IF_NONE_MATCH'])) {
header("HTTP/1.1 304 Not Modified");
exit;
}
$file_model = new File();
$info = $file_model->read(['hash'=>$hash]);
$info = $file_model->read(['hash' => $hash]);
if ($info === false) {
$this->response('指定文件不存在!', Code::USER_ERROR);
}
... ... @@ -58,10 +60,54 @@ class FileController
if (!is_file($path)) {
$this->response('指定文件已被系统删除!', Code::USER_ERROR);
}
$size = $info['size'];
// 设置Content-Type头部
$header['Content-Type'] = 'video/' . $info['type'];
// 设置Accept-Ranges头部
$header['Accept-Ranges'] = 'bytes';
// 检查是否有范围请求
if (isset($_SERVER['HTTP_RANGE'])) {
$range = $_SERVER['HTTP_RANGE'];
$ranges = explode('-', substr($range, 6));
$start = intval($ranges[0]);
$end = $size - 1;
if (!empty($ranges[1])) {
$end = intval($ranges[1]);
}
$length = $end - $start + 1;
// 设置部分响应头部
$header['Content-Length'] = $length;
$header['Content-Range'] = 'bytes ' . $start . '-' . $end . '/' . $size;
// 发送206 Partial Content状态码
header('HTTP/1.1 206 Partial Content');
header('Status: 206 Partial Content');
header('Accept-Ranges: bytes');
header('Content-Range: bytes ' . $start . '-' . $end . '/' . $size);
// 读取部分内容并发送响应
$file = fopen($path, 'rb');
fseek($file, $start);
$buffer = 1024 * 8; // 设置缓冲区大小
while (!feof($file) && ($p = ftell($file)) <= $end) {
if ($p + $buffer > $end) {
// 最后一块缓冲区
$buffer = $end - $p + 1;
}
echo fread($file, $buffer);
flush(); // 将输出刷新到浏览器
}
fclose($file);
exit;
}
// 无范围请求,发送完整文件
$header['Content-Length'] = $size;
$content = file_get_contents($path);
$header['Content-Length'] = $info['size'];
$header['Content-Type'] = 'video/'.$info['type'];
return response($content, 200, $header);
// 发送完整响应
foreach ($header as $name => $value) {
header("$name: $value");
}
echo $content;
exit;
}
/**
* 图片上传
... ... @@ -73,6 +119,7 @@ class FileController
'file.required'=>'必须填写',
]);
$files = $this->request->file('file');
if (empty($files)) {
$this->response('没有上传的文件!', 400);
}
... ...
... ... @@ -4,6 +4,8 @@ namespace App\Http\Logic\Bside\AyrShare;
use App\Http\Logic\Bside\BaseLogic;
use App\Models\AyrShare\AyrRelease;
use App\Models\File\File;
use App\Models\File\Image;
class AyrReleaseLogic extends BaseLogic
{
... ... @@ -17,7 +19,7 @@ class AyrReleaseLogic extends BaseLogic
}
/**
* @name :()release_info
* @name :(获取详情)release_info
* @author :lyh
* @method :post
* @time :2023/5/9 16:27
... ... @@ -36,26 +38,35 @@ class AyrReleaseLogic extends BaseLogic
* @time :2023/5/9 9:38
*/
public function release_add(){
$this->param['project_id'] = $this->user['project_id'];
$this->param['operator_id'] = $this->user['id'];
$rs = $this->model->add($this->param);
if($rs === false){
$this->fail('error');
}
return $this->success();
}
/**
* @name :(上传第三方平台)0ayr_release_add
* @name :(上传第三方图片参数处理)get_param
* @author :lyh
* @method :post
* @time :2023/5/9 10:02
* @time :2023/5/10 10:27
*/
public function ayr_release_add($param){
$param = [
'post'=>$this->param['content'],
'platforms'=>$this->param['platforms'],
'mediaUrls'=>$this->param['mediaUrls'],
];
return $this->success($param);
public function image_file_param($data) {
$arr = [];
foreach ($data as $k => $v){
if($k == 'images'){
$images = explode(',',$v);
$imageModel = new Image();
$list = $imageModel->list(['hash'=>['in',$images]],'id');
foreach ($list as $v1){
$arr[] = $v1['ayr_url'];
}
}else{
$arr[] = url('/b/file_hash/' . $v.rand(10000,99999).'mp4');;
}
}
return $this->success($arr);
}
/**
... ...
... ... @@ -2,10 +2,10 @@
namespace App\Http\Logic\Bside\AyrShare;
use App\Helper\AyrShare as AyrShareHelper;
use App\Http\Controllers\file\ImageController;
use App\Http\Logic\Bside\BaseLogic;
use App\Models\AyrShare\AyrShare;
use App\Models\File\File as FileModel;
use App\Models\File\Image as ImageModel;
class AyrShareLogic extends BaseLogic
{
... ... @@ -48,7 +48,7 @@ class AyrShareLogic extends BaseLogic
* @time :2023/5/6 10:16
*/
public function ayr_share_info(){
$info = $this->model->read(['id'=>$this->param['id']]);
$info = $this->model->read(['id'=>$this->param['share_id']]);
if($info === false){
$this->fail('当前数据不存在或已被删除');
}
... ... @@ -82,26 +82,76 @@ class AyrShareLogic extends BaseLogic
}
return $this->success();
}
/**
* @name :(更新图片库)save_info_info
* @author :lyh
* @method :post
* @time :2023/5/10 15:01
*/
public function save_img_info($hash){
$imageModel = new ImageModel();
$info = $imageModel->read(['hash'=>$hash]);
if($info === false){
$this->fail('error');
}
return $this->success();
}
/**
* @name :(向第三方平台发布帖子)api_public_msg
* @name :(更新图片库)save_info_info
* @author :lyh
* @method :post
* @time :2023/5/8 9:11
* @time :2023/5/10 15:01
*/
public function send_public_post($param){
//获取图片
$image_c = new ImageController();
$image_info = $image_c->index($param['hash']);
$param = [
'post'=>$param['text'],
'mediaUrls'=>$image_info,
'platforms'=>$this->param['platforms'],
public function save_file_info($hash){
$fileModel = new FileModel();
$info = $fileModel->read(['hash'=>$hash]);
if($info === false){
$this->fail('error');
}
return $this->success();
}
/**
* @name :(更新图片库)save_img
* @author :lyh
* @method :post
* @time :2023/5/10 15:01
*/
public function save_img($param_data){
//根据文件hash存入数据库
$ayr_data = [
'ayr_id'=>$param_data['id'],
'ayr_url'=>$param_data['url'],
'ayr_url_link'=>$param_data['url_1080']
];
$imageModel = new ImageModel();
$rs = $imageModel->edit($ayr_data,['hash'=>$this->param['hash']]);
if($rs === false){
$this->fail('更新失败');
}
return $this->success();
}
/**
* @name :(更新文件库)save_img
* @author :lyh
* @method :post
* @time :2023/5/10 15:01
*/
public function save_file($param_data){
//根据文件hash存入数据库
$ayr_data = [
'ayr_id'=>$param_data['id'],
'ayr_url'=>$param_data['url'],
'ayr_url_link'=>$param_data['url_1080']
];
//发布帖子
$ayrShareHelper = new AyrShareHelper();
$res = $ayrShareHelper->post_send_msg($param);
$this->success($res);
$imageModel = new FileModel();
$rs = $imageModel->edit($ayr_data,['hash'=>$this->param['hash']]);
if($rs === false){
$this->fail('更新失败');
}
return $this->success();
}
}
... ...
... ... @@ -29,9 +29,9 @@ class LoginAuthMiddleware
if(empty($info)){
return response(['code'=>Code::USER_ERROR,'msg'=>'当前用户未登录']);
}
// // 设置数据信息
// 设置数据信息
$project = ProjectServer::useProject($info['project_id']);
if(empty($project)){
if($project){
return response(['code'=>Code::USER_ERROR,'msg'=>'数据库未配置']);
}
//操作权限设置
... ...
<?php
namespace App\Http\Requests\Bside\AyrRelease;
use Illuminate\Foundation\Http\FormRequest;
class AyrReleaseRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'title'=>'required',
'images'=>'required',
'video'=>'required',
'content'=>'required',
'share_id'=>'required',
'platforms'=>'required',
'idempotency_key'=>'required',
];
}
public function messages()
{
return [
'name.required'=>'参数错误',
];
}
}
... ...
... ... @@ -7,4 +7,30 @@ use App\Models\Base;
class AyrShare extends Base
{
protected $table = 'gl_ayr_share';
const TYPE_FACEBOOK = 1;
const TYPE_TWITTER = 2;
const TYPE_LINKEDIN = 3;
const TYPE_INSTAGRAM = 4;
const TYPE_YOUTUBE = 5;
const TYPE_REDDIT = 6;
const TYPE_TELEGRAM = 7;
const TYPE_GMB = 8;
const TYPE_PINTEREST = 9;
const TYPE_TIKTOK = 10;
/**
* @var :授权列表
*/
public $platforms = [
self::TYPE_FACEBOOK => 'Facebook',
self::TYPE_TWITTER => 'Twitter',
self::TYPE_LINKEDIN => 'LinkedIn',
self::TYPE_INSTAGRAM => 'Instagram',
self::TYPE_YOUTUBE => 'YouTube',
self::TYPE_REDDIT => 'Reddit',
self::TYPE_TELEGRAM => 'Telegram',
self::TYPE_GMB => 'Google',
self::TYPE_PINTEREST => 'Pinterest',
self::TYPE_TIKTOK => 'TikTok',
];
}
... ...
... ... @@ -8,7 +8,8 @@ use App\Models\User\User;
class Blog extends Base
{
protected $table = 'gl_blog';
//连接数据库
protected $connection = 'custom_mysql';
public function user(){
return $this->hasMany(User::class,'operator_id','id');
}
... ...
... ... @@ -7,4 +7,7 @@ use App\Models\Base;
class BlogCategory extends Base
{
protected $table = 'gl_blog_category';
//连接数据库
protected $connection = 'custom_mysql';
}
... ...
... ... @@ -7,4 +7,6 @@ use App\Models\Base;
class BlogLabel extends Base
{
protected $table = 'gl_blog_label';
//连接数据库
protected $connection = 'custom_mysql';
}
... ...
... ... @@ -7,4 +7,6 @@ use App\Models\Base;
class File extends Base
{
protected $table = 'gl_file';
//连接数据库
protected $connection = 'custom_mysql';
}
... ...
... ... @@ -8,20 +8,6 @@ class Image extends Base
{
protected $table = 'gl_image';
public $timestamps = true;
/**
* @param $hash
* @name :(获取图片详情)image_read
* @author :lyh
* @method :post
* @time :2023/5/4 11:50
*/
public function image_read($hash){
$info = $this->read(['hash'=>$hash]);
if(empty($info)){
return false;
}
return $info;
}
//连接数据库
protected $connection = 'custom_mysql';
}
... ...
... ... @@ -9,4 +9,6 @@ class Mail extends Base
protected $table = 'gl_mail';
//自动维护create_at创建时间 updated_at修改时间
public $timestamps = true;
//连接数据库
protected $connection = 'custom_mysql';
}
... ...
... ... @@ -9,4 +9,6 @@ class MailUser extends Base
protected $table = 'gl_mail_user';
//自动维护create_at创建时间 updated_at修改时间
public $timestamps = true;
//连接数据库
protected $connection = 'custom_mysql';
}
... ...
... ... @@ -7,4 +7,6 @@ use App\Models\Base;
class News extends Base
{
protected $table = 'gl_news';
//连接数据库
protected $connection = 'custom_mysql';
}
... ...
... ... @@ -7,4 +7,6 @@ use App\Models\Base;
class NewsCategory extends Base
{
protected $table = 'gl_news_category';
//连接数据库
protected $connection = 'custom_mysql';
}
... ...
... ... @@ -7,4 +7,6 @@ use App\Models\Base;
class NewsLabel extends Base
{
protected $table = 'gl_news_label';
//连接数据库
protected $connection = 'custom_mysql';
}
... ...
... ... @@ -24,7 +24,7 @@ return [
//默认视频
'default_file' =>[
'size' => [
'max' => 1024*1024*200, // 2M
'max' => 1024*1024*20, // 2M
],
'path' => '/file'
],
... ...
... ... @@ -216,6 +216,13 @@ Route::middleware(['bloginauth'])->group(function () {
Route::any('/create', [\App\Http\Controllers\Bside\AyrShare\AyrShareController::class, 'create_account'])->name('ayr_create_account');
Route::any('/del', [\App\Http\Controllers\Bside\AyrShare\AyrShareController::class, 'del_account'])->name('ayr_del_account');
Route::any('/bind', [\App\Http\Controllers\Bside\AyrShare\AyrShareController::class, 'bind_account'])->name('ayr_bind_account');
//社交绑定
Route::prefix('release')->group(function () {
Route::any('/info', [\App\Http\Controllers\Bside\AyrShare\AyrReleaseController::class, 'info'])->name('ayr_release_info');
Route::any('/share_info', [\App\Http\Controllers\Bside\AyrShare\AyrReleaseController::class, 'share_info'])->name('ayr_release_share_info');
Route::any('/send', [\App\Http\Controllers\Bside\AyrShare\AyrReleaseController::class, 'send_post'])->name('ayr_release_send');
Route::any('/send_media', [\App\Http\Controllers\Bside\AyrShare\AyrReleaseController::class, 'send_media'])->name('ayr_release_send_media');
});
});
... ... @@ -228,7 +235,6 @@ Route::middleware(['bloginauth'])->group(function () {
Route::get('/custom-chunk', [\App\Http\Controllers\Bside\TemplateController::class, 'customChunk'])->name('bside_template_custom_chunk');
Route::get('/system', [\App\Http\Controllers\Bside\TemplateController::class, 'system_all_html'])->name('template_header_footer_system');
});
// 自定义页面,专题页
Route::prefix('custom')->group(function () {
Route::get('/', [\App\Http\Controllers\Bside\CustomController::class, 'index'])->name('bside_custom');
... ... @@ -237,20 +243,14 @@ Route::middleware(['bloginauth'])->group(function () {
Route::delete('/delete', [\App\Http\Controllers\Bside\CustomController::class, 'delete'])->name('bside_custom_delete');
Route::any('/html/{id}', [\App\Http\Controllers\Bside\CustomController::class, 'html'])->where('id','\d+')->name('bside_custom_delete');
});
// 导航栏编辑
Route::prefix('nav')->group(function () {
Route::get('/', [\App\Http\Controllers\Bside\NavController::class, 'index'])->name('bside_nav');
Route::post('/create', [\App\Http\Controllers\Bside\NavController::class, 'create'])->name('bside_nav_create');
Route::post('/update', [\App\Http\Controllers\Bside\NavController::class, 'update'])->name('bside_nav_update');
Route::delete('/delete', [\App\Http\Controllers\Bside\NavController::class, 'delete'])->name('bside_nav_delete');
Route::get('/default-urls', [\App\Http\Controllers\Bside\NavController::class, 'urls'])->name('bside_nav_default_urls');
});
});
//无需登录验证的路由组
... ... @@ -258,6 +258,6 @@ Route::group([], function () {
Route::any('/login', [\App\Http\Controllers\Bside\ComController::class, 'login'])->name('login');
// Route::any('/', [\App\Http\Controllers\Bside\ComController::class, 'get_country'])->name('get_country');
Route::get('/file/download', [\App\Http\Controllers\Bside\FileController::class, 'download'])->name('file_download');
Route::any('/image/{hash}/{w?}/{h?}', [\App\Http\Controllers\file\ImageController::class,'index'])->name('image_show');
Route::any('/file_hash/{hash}', [\App\Http\Controllers\file\FileController::class,'index'])->name('file_show');
Route::any('/image/{hash}/{type?}/{w?}/{h?}', [\App\Http\Controllers\file\ImageController::class,'index'])->name('image_show');
Route::any('/file_hash/{hash}/', [\App\Http\Controllers\file\FileController::class,'index'])->name('file_show');
});
... ...