Files
services/routes/upload.js
T

48 lines
1.1 KiB
JavaScript
Raw Normal View History

2026-05-23 14:15:45 +08:00
const Router = require('koa-router')
const multer = require('@koa/multer')
const path = require('path')
const fs = require('fs')
const router = new Router()
// 确保上传目录存在
const uploadDir = path.join(__dirname, '..', 'public', 'uploads')
if (!fs.existsSync(uploadDir)) {
fs.mkdirSync(uploadDir, { recursive: true })
}
// 配置 multer
const storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, uploadDir)
},
filename: (req, file, cb) => {
const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1e9)
const ext = path.extname(file.originalname)
cb(null, uniqueSuffix + ext)
}
})
const upload = multer({ storage })
// 上传接口
router.post('/', upload.single('file'), async (ctx) => {
if (!ctx.file) {
ctx.status = 400
ctx.body = {
code: 400,
message: '没有上传文件'
}
return
}
2026-05-23 14:58:20 +08:00
const fileUrl = `http://110.42.255.239:3005/uploads/${ctx.file.filename}`
2026-05-23 14:15:45 +08:00
ctx.body = {
code: 200,
message: '上传成功',
url: fileUrl
}
})
module.exports = router.routes()