sifangpay/app/Http/Controllers/Admin/FileUploadController.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);
}
}