39 lines
1.2 KiB
PHP
39 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Mini;
|
|
|
|
use Illuminate\Http\JsonResponse;
|
|
use Illuminate\Http\Request;
|
|
use Modules\AnnoRoute\Attribute\PostRoute;
|
|
use Modules\AnnoRoute\Attribute\RequestAttribute;
|
|
use Modules\SystemTool\Services\SysFileService;
|
|
|
|
/**
|
|
* 小程序文件上传(汇款凭证等图片)
|
|
*/
|
|
#[RequestAttribute('/mini', 'mini', authGuard: 'users')]
|
|
class UploadController extends BaseMiniController
|
|
{
|
|
/** 上传图片,返回文件ID与预览地址(5MB 内) */
|
|
#[PostRoute('/upload', authorize: true)]
|
|
public function upload(Request $request): JsonResponse
|
|
{
|
|
$data = $request->validate([
|
|
'file' => 'required|image|max:5120',
|
|
], [
|
|
'file.required' => '请选择要上传的图片',
|
|
'file.image' => '仅支持图片文件',
|
|
'file.max' => '图片不能超过 5MB',
|
|
]);
|
|
|
|
$store = $this->currentStore($request);
|
|
// 分组 4=用户上传,渠道 20=APP用户
|
|
$result = app(SysFileService::class)->upload($data['file'], 4, 20, $store->id);
|
|
|
|
return $this->success([
|
|
'id' => $result['id'],
|
|
'url' => $result['preview_url'] ?? '',
|
|
], '上传成功');
|
|
}
|
|
}
|