first commit
This commit is contained in:
179
app/Http/Controllers/Admin/System/File.php
Normal file
179
app/Http/Controllers/Admin/System/File.php
Normal file
@@ -0,0 +1,179 @@
|
||||
<?php
|
||||
// +----------------------------------------------------------------------
|
||||
// | SentCMS [ WE CAN DO IT JUST THINK IT ]
|
||||
// +----------------------------------------------------------------------
|
||||
// | Copyright (c) 2024 http://www.tensent.cn All rights reserved.
|
||||
// +----------------------------------------------------------------------
|
||||
// | Author: molong <molong@tensent.cn> <http://www.tensent.cn>
|
||||
// +----------------------------------------------------------------------
|
||||
namespace App\Http\Controllers\Admin\System;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use App\Http\Controllers\BaseController;
|
||||
|
||||
class File extends BaseController {
|
||||
|
||||
/**
|
||||
* @title 上传文件
|
||||
*
|
||||
* @param Request $request
|
||||
* @return void
|
||||
*/
|
||||
public function upload(Request $request){
|
||||
$type = $request->input('type', 'images');
|
||||
|
||||
try {
|
||||
switch ($type) {
|
||||
case 'avatar':
|
||||
$this->data['data'] = $this->avatar($request);
|
||||
break;
|
||||
case 'images':
|
||||
$this->data['data'] = $this->images($request);
|
||||
break;
|
||||
case 'files':
|
||||
$this->data['data'] = $this->files($request);
|
||||
break;
|
||||
default:
|
||||
$this->data['data'] = $this->images($request);
|
||||
break;
|
||||
}
|
||||
} catch (\Throwable $th) {
|
||||
$this->data['code'] = 0;
|
||||
$this->data['message'] = $th->getMessage();
|
||||
}
|
||||
return response()->json($this->data);
|
||||
}
|
||||
|
||||
/**
|
||||
* @title 文件列表
|
||||
*
|
||||
* @param Request $request
|
||||
* @return void
|
||||
*/
|
||||
public function lists(Request $request){
|
||||
$path = $request->input('groupId', 'images');
|
||||
|
||||
$files = Storage::allFiles($path);
|
||||
|
||||
$data = [];
|
||||
foreach ($files as $key => $value) {
|
||||
$data[] = [
|
||||
'path' => $value,
|
||||
'url' => Storage::disk()->url($path),
|
||||
'name'=> explode('/', $value)[2],
|
||||
];
|
||||
}
|
||||
$this->data['data'] = ['data' => $data];
|
||||
return response()->json($this->data);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @title 列表菜单
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function menu(Request $request){
|
||||
$file = [
|
||||
['id'=> 'images','title'=>'图片', 'children' => []],
|
||||
['id'=> 'files','title'=>'文件', 'children' => []],
|
||||
['id'=> 'videos','title'=>'视频', 'children' => []],
|
||||
['id'=> 'audios','title'=>'音频', 'children' => []],
|
||||
];
|
||||
|
||||
foreach ($file as $key => $value) {
|
||||
$paths = Storage::disk()->allDirectories($value['id']);
|
||||
foreach ($paths as $key => $value) {
|
||||
$file[$key]['children'][] = ['id'=> $value, 'title'=>explode('/', $value)[1]];
|
||||
}
|
||||
}
|
||||
|
||||
$this->data['data'] = $file;
|
||||
return response()->json($this->data);
|
||||
}
|
||||
|
||||
/**
|
||||
* @title 删除文件
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function delete(Request $request){
|
||||
return response()->json($this->data);
|
||||
}
|
||||
|
||||
/**
|
||||
* @title 上传头像
|
||||
*
|
||||
* @param Request $request
|
||||
* @return void
|
||||
*/
|
||||
protected function avatar(Request $request){
|
||||
$file = $request->file('file');
|
||||
|
||||
if ($file->isValid()) {
|
||||
$ext = $file->extension();
|
||||
$name = $file->hashName();
|
||||
|
||||
$path = $file->store('avatar/'.date('Ymd'));
|
||||
|
||||
$data = [
|
||||
'path' => $path,
|
||||
'url' => Storage::disk()->url($path),
|
||||
'src' => Storage::disk()->url($path),
|
||||
'name'=> $name,
|
||||
'size'=> $file->getSize(),
|
||||
'ext' => $ext,
|
||||
];
|
||||
return $data;
|
||||
}else{
|
||||
throw new \Exception('上传失败');
|
||||
}
|
||||
}
|
||||
|
||||
protected function images(Request $request){
|
||||
$file = $request->file('file');
|
||||
|
||||
if ($file->isValid()) {
|
||||
$ext = $file->extension();
|
||||
$name = $file->hashName();
|
||||
|
||||
$path = $file->store('images/'.date('Ymd'));
|
||||
|
||||
$data = [
|
||||
'path' => $path,
|
||||
'url' => Storage::disk()->url($path),
|
||||
'src' => Storage::disk()->url($path),
|
||||
'name'=> $name,
|
||||
'size'=> $file->getSize(),
|
||||
'ext' => $ext,
|
||||
];
|
||||
return $data;
|
||||
}else{
|
||||
throw new \Exception('上传失败');
|
||||
}
|
||||
}
|
||||
|
||||
protected function files(Request $request){
|
||||
$file = $request->file('file');
|
||||
|
||||
if ($file->isValid()) {
|
||||
$ext = $file->extension();
|
||||
$name = $file->hashName();
|
||||
|
||||
$path = $file->store('files/'.date('Ymd'));
|
||||
|
||||
$data = [
|
||||
'path' => $path,
|
||||
'url' => Storage::disk()->url($path),
|
||||
'src' => Storage::disk()->url($path),
|
||||
'name'=> $name,
|
||||
'size'=> $file->getSize(),
|
||||
'ext' => $ext,
|
||||
];
|
||||
return $data;
|
||||
}else{
|
||||
throw new \Exception('上传失败');
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user