You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
718 B
29 lines
718 B
<?php
|
|
|
|
namespace App\Http\Controllers\Miniapp;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\CourseMedia;
|
|
use App\Support\ApiResponse;
|
|
use Illuminate\Http\JsonResponse;
|
|
use Illuminate\Http\Request;
|
|
|
|
class UploadController extends Controller
|
|
{
|
|
use ApiResponse;
|
|
|
|
public function avatar(Request $request): JsonResponse
|
|
{
|
|
$data = $request->validate([
|
|
'file' => ['required', 'file', 'image', 'max:2048'],
|
|
]);
|
|
|
|
$user = $request->user();
|
|
$uploaded = $data['file'];
|
|
$path = $uploaded->store("miniapp/avatars/{$user->id}", 'public');
|
|
$url = CourseMedia::publicAssetUrl($path) ?? '';
|
|
|
|
return $this->ok(['url' => $url], '已上传');
|
|
}
|
|
}
|