fix(admin,server): 上传改用 file.buffer 并移除手写 multipart 头

This commit is contained in:
2026-08-07 16:37:55 +08:00
parent 54b002455f
commit 899d2dde5b
16 changed files with 19 additions and 40 deletions

View File

@@ -86,7 +86,7 @@ export class AiExcelReaderService {
private async loadWithExcelJs(buffer: Buffer): Promise<ExcelSheetRows[]> {
const workbook = new ExcelJS.Workbook();
await workbook.xlsx.load(buffer.buffer as ArrayBuffer);
await workbook.xlsx.load(buffer as unknown as ArrayBuffer);
const sheets: ExcelSheetRows[] = [];
workbook.eachSheet((sheet) => {
const rows: string[][] = [];

View File

@@ -158,7 +158,7 @@ export class ClassroomsController {
async importExcel(@UploadedFile() file: Express.Multer.File, @Request() req: any) {
const { ipAddress, userAgent } = extractRequestInfo(req);
const workbook = new ExcelJS.Workbook();
await workbook.xlsx.load(file.buffer.buffer as ArrayBuffer);
await workbook.xlsx.load(file.buffer as unknown as ArrayBuffer);
const ws = workbook.worksheets[0];
const rows: any[] = [];
ws.eachRow((row, idx) => {

View File

@@ -316,7 +316,7 @@ export class ExpensesController {
@UseInterceptors(FileInterceptor('file'))
async importUtilityExpenses(@UploadedFile() file: Express.Multer.File, @Request() req: any) {
const workbook = new ExcelJS.Workbook();
await workbook.xlsx.load(file.buffer.buffer as ArrayBuffer);
await workbook.xlsx.load(file.buffer as unknown as ArrayBuffer);
const ws = workbook.worksheets[0];
const rows: any[] = [];
ws.eachRow((row, idx) => {
@@ -381,7 +381,7 @@ export class ExpensesController {
@UseInterceptors(FileInterceptor('file'))
async importPersonalExpenses(@UploadedFile() file: Express.Multer.File, @Request() req: any) {
const workbook = new ExcelJS.Workbook();
await workbook.xlsx.load(file.buffer.buffer as ArrayBuffer);
await workbook.xlsx.load(file.buffer as unknown as ArrayBuffer);
const ws = workbook.worksheets[0];
const rows: any[] = [];
ws.eachRow((row, idx) => {

View File

@@ -84,7 +84,7 @@ export async function parseSheets(
if (kind === 'csv') {
await workbook.csv.read(Readable.from(Buffer.from(buffer)));
} else {
await workbook.xlsx.load(buffer.buffer as ArrayBuffer);
await workbook.xlsx.load(buffer as unknown as ArrayBuffer);
}
const sheets = extractSheets(workbook, headerRow);
if (sheets.length === 0) {

View File

@@ -264,7 +264,7 @@ export class OccupanciesController {
const { ipAddress, userAgent } = extractRequestInfo(req);
if (!file?.buffer) throw new BadRequestException('请上传入住名单 Excel 文件');
const workbook = new ExcelJS.Workbook();
await workbook.xlsx.load(file.buffer.buffer as ArrayBuffer);
await workbook.xlsx.load(file.buffer as unknown as ArrayBuffer);
const ws = workbook.worksheets[0];
const rows = parseOccupancyImportWorksheet(ws);
const result = await this.service.batchImportCheckIn(rows, {

View File

@@ -343,7 +343,7 @@ export class RoomsController {
async importExcel(@UploadedFile() file: Express.Multer.File, @Request() req: any) {
const { ipAddress, userAgent } = extractRequestInfo(req);
const workbook = new ExcelJS.Workbook();
await workbook.xlsx.load(file.buffer.buffer as ArrayBuffer);
await workbook.xlsx.load(file.buffer as unknown as ArrayBuffer);
const ws = workbook.worksheets[0];
const rows: {
roomNumber: string;

View File

@@ -255,7 +255,7 @@ export class StudentsController {
@UseInterceptors(FileInterceptor('file'))
async importExcel(@UploadedFile() file: Express.Multer.File, @Request() req: any) {
const workbook = new ExcelJS.Workbook();
await workbook.xlsx.load(file.buffer.buffer as ArrayBuffer);
await workbook.xlsx.load(file.buffer as unknown as ArrayBuffer);
const importData = parseStudentImportWorkbook(workbook);
// Resolve organization names to IDs
for (const row of importData.students) {
@@ -280,7 +280,7 @@ export class StudentsController {
@UseInterceptors(FileInterceptor('file'))
async matchImport(@UploadedFile() file: Express.Multer.File, @Request() req: any) {
const workbook = new ExcelJS.Workbook();
await workbook.xlsx.load(file.buffer.buffer as ArrayBuffer);
await workbook.xlsx.load(file.buffer as unknown as ArrayBuffer);
const importData = parseStudentImportWorkbook(workbook);
// Resolve organization names to IDs
for (const row of importData.students) {