upload avatar

This commit is contained in:
董海洋
2026-06-04 19:34:31 +08:00
parent d529333ba7
commit ed9b555c1c
+21 -1
View File
@@ -2,7 +2,7 @@ const Router = require('koa-router')
const multer = require('@koa/multer')
const path = require('path')
const fs = require('fs')
const { requireStaffAuth } = require('../middleware/auth')
const { requireAuth, requireStaffAuth } = require('../middleware/auth')
const router = new Router()
@@ -11,6 +11,9 @@ const ALLOWED_EXTS = ['.jpg', '.jpeg', '.png', '.gif', '.webp']
const MAX_SIZE = 5 * 1024 * 1024
const ALLOWED_BUCKETS = ['goods', 'points', 'avatar', 'category']
// 普通用户可上传的目录
const USER_ALLOWED_BUCKETS = ['avatar']
const uploadDir = path.join(__dirname, '..', 'public', 'uploads')
const storage = multer.diskStorage({
@@ -44,6 +47,23 @@ const upload = multer({
}
})
// 头像上传 - 所有已登录用户可用
router.post('/avatar', requireAuth(), upload.single('file'), async (ctx) => {
if (!ctx.file) {
ctx.status = 400
ctx.body = { code: 400, message: '没有上传文件' }
return
}
const fileUrl = `/uploads/avatar/${ctx.file.filename}`
ctx.body = {
code: 200,
message: '上传成功',
url: fileUrl
}
})
// 通用上传 - staff/admin 可用
router.post('/', requireStaffAuth(), upload.single('file'), async (ctx) => {
if (!ctx.file) {
ctx.status = 400