You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.3 KiB
PHP
52 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Services\CrossFileService;
|
|
use Illuminate\Http\Request;
|
|
|
|
class AssetController extends Controller
|
|
{
|
|
public function upload(Request $request, CrossFileService $fileService)
|
|
{
|
|
$asset = $fileService->saveFile(auth()->user(), $request, "file");
|
|
|
|
$data = [
|
|
'uid' => $asset->uid,
|
|
'url' => '/image/rate/w800/'. $asset->uid,
|
|
];
|
|
|
|
return $this->sendJson('업로드 완료', 'success', $data, [], true);
|
|
}
|
|
|
|
public function download($uid, CrossFileService $fileService)
|
|
{
|
|
return $fileService->download($uid);
|
|
}
|
|
|
|
public function downloadImageRate($rate, $uid, CrossFileService $fileService)
|
|
{
|
|
if (!empty($rate)) {
|
|
$type = substr($rate, 0, 1);
|
|
$size = substr($rate, 1);
|
|
if ($type == 'w' || $type == 'h') {
|
|
return $fileService->downloadImageRate($uid, $type, $size);
|
|
}
|
|
}
|
|
abort(404);
|
|
}
|
|
|
|
public function downloadImage($size, $uid, CrossFileService $fileService)
|
|
{
|
|
if (!empty($size)) {
|
|
$size = explode("x", $size);
|
|
$width = (int)$size[0];
|
|
$height = (int)$size[1];
|
|
|
|
return $fileService->downloadImage($uid, $width, $height);
|
|
}
|
|
abort(404);
|
|
}
|
|
|
|
}
|