初始化项目
This commit is contained in:
106
app/Http/Controllers/System/Api/Upload.php
Normal file
106
app/Http/Controllers/System/Api/Upload.php
Normal file
@@ -0,0 +1,106 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\System\Api;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Services\System\UploadService;
|
||||
|
||||
class Upload extends Controller
|
||||
{
|
||||
protected $uploadService;
|
||||
|
||||
public function __construct(UploadService $uploadService)
|
||||
{
|
||||
$this->uploadService = $uploadService;
|
||||
}
|
||||
|
||||
public function upload(Request $request)
|
||||
{
|
||||
try {
|
||||
$request->validate([
|
||||
'file' => 'required|file|max:10240',
|
||||
]);
|
||||
|
||||
$file = $request->file('file');
|
||||
$directory = $request->input('directory', 'uploads');
|
||||
$options = [
|
||||
'compress' => $request->input('compress', false),
|
||||
'quality' => $request->input('quality', 80),
|
||||
'width' => $request->input('width'),
|
||||
'height' => $request->input('height'),
|
||||
];
|
||||
|
||||
$result = $this->uploadService->upload($file, $directory, $options);
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '上传成功',
|
||||
'data' => $result
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'code' => 400,
|
||||
'message' => $e->getMessage(),
|
||||
'data' => null
|
||||
], 400);
|
||||
}
|
||||
}
|
||||
|
||||
public function uploadMultiple(Request $request)
|
||||
{
|
||||
try {
|
||||
$request->validate([
|
||||
'files' => 'required|array',
|
||||
'files.*' => 'file|max:10240',
|
||||
]);
|
||||
|
||||
$files = $request->file('files');
|
||||
$directory = $request->input('directory', 'uploads');
|
||||
$options = [
|
||||
'compress' => $request->input('compress', false),
|
||||
'quality' => $request->input('quality', 80),
|
||||
'width' => $request->input('width'),
|
||||
'height' => $request->input('height'),
|
||||
];
|
||||
|
||||
$results = $this->uploadService->uploadMultiple($files, $directory, $options);
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '上传成功',
|
||||
'data' => $results
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'code' => 400,
|
||||
'message' => $e->getMessage(),
|
||||
'data' => null
|
||||
], 400);
|
||||
}
|
||||
}
|
||||
|
||||
public function uploadBase64(Request $request)
|
||||
{
|
||||
try {
|
||||
$request->validate([
|
||||
'base64' => 'required|string',
|
||||
]);
|
||||
|
||||
$base64 = $request->input('base64');
|
||||
$directory = $request->input('directory', 'uploads');
|
||||
$fileName = $request->input('file_name');
|
||||
|
||||
$result = $this->uploadService->uploadBase64($base64, $directory, $fileName);
|
||||
return response()->json([
|
||||
'code' => 200,
|
||||
'message' => '上传成功',
|
||||
'data' => $result
|
||||
]);
|
||||
} catch (\Exception $e) {
|
||||
return response()->json([
|
||||
'code' => 400,
|
||||
'message' => $e->getMessage(),
|
||||
'data' => null
|
||||
], 400);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user