mirror of
https://github.com/cjango/dcat-vue.git
synced 2025-12-06 14:20:03 +08:00
88 lines
2.6 KiB
PHP
88 lines
2.6 KiB
PHP
<?php
|
|
|
|
namespace Weiwait\DcatVue\Http\Controllers;
|
|
|
|
use Dcat\Admin\Layout\Content;
|
|
use Dcat\Admin\Admin;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Routing\Controller;
|
|
use Illuminate\Support\Facades\Storage;
|
|
use Qiniu\Config;
|
|
use Weiwait\DcatVue\Forms\FilesystemConfig;
|
|
use Weiwait\DcatVue\Models\WeiwaitUpload;
|
|
|
|
class DcatVueController extends Controller
|
|
{
|
|
public function index(Content $content)
|
|
{
|
|
return $content
|
|
->title('Title')
|
|
->description('Description')
|
|
->body(Admin::view('weiwait.dcat-vue::index'));
|
|
}
|
|
|
|
public function uploaded(Request $request)
|
|
{
|
|
WeiwaitUpload::clearUnusedFiles();
|
|
|
|
WeiwaitUpload::query()
|
|
->insert(array_map(fn($item) => ['name' => $item, 'created_at' => now(), 'disk' => $request['disk']],
|
|
(array)$request['files']
|
|
));
|
|
}
|
|
|
|
public function obsConfig(Request $request)
|
|
{
|
|
switch ($request['disk']) {
|
|
case 'oss':
|
|
return json_decode(
|
|
Storage::disk('oss')->getAdapter()->signatureConfig(prefix: config('admin.upload.directory.file'), expire: 3600),
|
|
true
|
|
);
|
|
|
|
case 'qiniu':
|
|
$url = (new Config())->getUpHost(
|
|
config('filesystems.disks.qiniu.access_key'),
|
|
config('filesystems.disks.qiniu.bucket')
|
|
);
|
|
return [
|
|
'token' => Storage::disk('qiniu')->getAdapter()->getUploadToken($request['filename'], 3600),
|
|
'host' => $url,
|
|
];
|
|
case 'cos':
|
|
case 'cosv5':
|
|
$url = parse_url(Storage::disk('cosv5')->url(''));
|
|
return [
|
|
'auth' => Storage::disk('cosv5')->getFederationTokenV3($request['filename']),
|
|
'host' => $url['scheme'] . '://' . $url['host'] . '/' . $request['filename'],
|
|
];
|
|
default:
|
|
return [
|
|
'host' => route('dcat.admin.weiwait.file.upload'),
|
|
];
|
|
}
|
|
}
|
|
|
|
public function upload(Request $request)
|
|
{
|
|
if ($file = $request->file('file')) {
|
|
$name = basename($request['key']);
|
|
$path = dirname($request['key']);
|
|
|
|
Storage::disk()->putFileAs($path, $file, $name);
|
|
|
|
return [
|
|
'key' => $request['key']
|
|
];
|
|
}
|
|
|
|
return response($request->all(), 400);
|
|
}
|
|
|
|
public function filesystem(Content $content): Content
|
|
{
|
|
return $content
|
|
->body(new FilesystemConfig());
|
|
}
|
|
}
|