Files
xin-procurement/app/Http/Controllers/Mini/UploadController.php
T

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'] ?? '',
], '上传成功');
}
}