上传文件需要token认证

This commit is contained in:
Jerry 2025-05-13 13:42:17 +08:00
parent 0b08a98229
commit 466eb75067

View File

@ -4,6 +4,7 @@ import logger from '../../utils/core/logger';
import response from '../../utils/core/response'; import response from '../../utils/core/response';
import paths from '../../utils/core/path'; import paths from '../../utils/core/path';
import multer from 'multer'; import multer from 'multer';
import tools from '../../utils/modules/tools';
const uploadDir = paths.get('uploads'); const uploadDir = paths.get('uploads');
const upload = multer({ const upload = multer({
@ -78,23 +79,28 @@ class FileController {
*/ */
private handleUploadFile = async (req: express.Request, res: express.Response): Promise<void> => { private handleUploadFile = async (req: express.Request, res: express.Response): Promise<void> => {
try { try {
if (!req.file) { const token = req.body.token;
await response.error(res, `未检测到上传文件`, 400); if (tools.checkToken(token.toString())) {
return; if (!req.file) {
} await response.error(res, `未检测到上传文件`, 400);
return;
}
const uploadDir = req.query.dir?.toString() || ''; const uploadDir = req.query.dir?.toString() || '';
const deleteAfter = parseInt(req.query.expire as string) || 10 * 60; const deleteAfter = parseInt(req.query.expire as string) || 10 * 60;
const { fullPath, relativePath } = await this.FileService.saveUploadedFile( const { fullPath, relativePath } = await this.FileService.saveUploadedFile(
req.file, req.file,
uploadDir uploadDir
); );
await this.FileService.scheduleDelete(fullPath, deleteAfter * 1000); await this.FileService.scheduleDelete(fullPath, deleteAfter * 1000);
await response.success(res, { await response.success(res, {
message: '文件上传成功..', message: '文件上传成功..',
filePath: fullPath, filePath: fullPath,
url: relativePath, url: relativePath,
}); });
} else {
await tools.tokenCheckFailed(res, token);
}
} catch (e) { } catch (e) {
await response.error(res, `文件上传失败..`, 500); await response.error(res, `文件上传失败..`, 500);
logger.error(e); logger.error(e);