103 lines
3.2 KiB
PHP
103 lines
3.2 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Admin;
|
|
|
|
use App\Models\File;
|
|
use Illuminate\Http\Request;
|
|
use App\Http\Controllers\Controller;
|
|
use App\Classc\UploadFile;
|
|
|
|
class FileUploadController extends BaseController
|
|
{
|
|
//
|
|
public function handle($type,Request $request){
|
|
if($type=='upload')
|
|
{
|
|
return $this->upload($request);
|
|
}
|
|
if($type=='list')
|
|
{
|
|
return $this->getList($request);
|
|
}
|
|
if($type=='only_one')
|
|
{
|
|
$this->setViewPath('','handle_only');
|
|
return $this->getList($request);
|
|
}
|
|
if($type=='api')
|
|
{
|
|
return $this->getApi($request);
|
|
}
|
|
}
|
|
protected function upload($request){
|
|
$files = $request->input('files', 'file');
|
|
$type=$request->input('uptype','image');
|
|
$method = $request->input('method', 'upload');
|
|
$r = UploadFile::upload($files, $type, $method);
|
|
|
|
if($type!='image')
|
|
{
|
|
$r['view_img']=____('file.jpg');
|
|
}else
|
|
{
|
|
$r['view_img']=$r['path'];
|
|
}
|
|
|
|
return response()->json($r);
|
|
}
|
|
protected function getList($request){
|
|
return $this->display([]);
|
|
}
|
|
protected function getApi($request){
|
|
$type = $request->input('uptype','');
|
|
$is_oss = $request->input('is_oss', false);
|
|
$offset = $request->input('offset', 1);
|
|
$pagesize = $request->input('limit', 1);
|
|
$offset = ($offset - 1) * $pagesize;
|
|
$key = $request->input('search', '');
|
|
|
|
$model = new File();
|
|
if ($type) {
|
|
$model = $model->where('type', $type);
|
|
}
|
|
$total = $model->where('user_type', 'admin')->count();
|
|
|
|
$data = $model->where('user_type', 'admin')->skip($offset)->take($pagesize)->orderBy('id', 'desc')->get()->toArray();
|
|
$str = '';
|
|
$uindex = 0;
|
|
foreach ($data as $key => $v) {
|
|
$pic_url = $v['path'];
|
|
$is_oss = $is_oss ? $is_oss : config('adconfig.is_oss');
|
|
$v['oss'] = '';
|
|
$img_html='<img data-type="'.$v['type'].'" src="' . $v['path']. '" class="" title="' . $v['tmp']. '" alt="" > ';
|
|
if ($is_oss) {
|
|
if (Storage::exists($pic_url)) {
|
|
$pic_url = Storage::url($v['path']);
|
|
$v['oss'] = Storage::url($v['path']);
|
|
}
|
|
|
|
}
|
|
if ($v['type'] != 'image') {
|
|
|
|
$img_html=' <video class="upload_img" src="'.$v['path'].'" data-type="'.$v['type'].'" data-src="' . $v['path']. '" controls="controls" style="width: 100%;"></video>';
|
|
}
|
|
|
|
|
|
$str .= '<div class="layui-upload-img item layui-inline " data-size="'.$v['size'].'.kb" data-tmpname="'.$v['tmp'].'" data-type="'.$v['type'].'" data-src="' . $v['path']. '"> ' .$img_html .
|
|
'<p class="layui-">' . $v['tmp']. '</p> </div>';
|
|
$uindex++;
|
|
}
|
|
|
|
$list = array(
|
|
'total' => $total,
|
|
'contents' => $str,
|
|
'pagesize' => $pagesize
|
|
);
|
|
$debug = $request->input('debug', 0);
|
|
if ($debug) {
|
|
return $this->jsonDebug($list);
|
|
}
|
|
return response()->json($list);
|
|
}
|
|
}
|