|
|
@@ -17,9 +17,10 @@ import { CreateMenuDto, GetMenuDto, QueryMenuDto, UpdateMenuDto, UploadCoverDto
|
|
|
import { JwtGuard } from '@/common/guards';
|
|
|
import { FileInterceptor } from '@nestjs/platform-express';
|
|
|
import { diskStorage } from 'multer';
|
|
|
-import { extname } from 'path';
|
|
|
+import { extname, basename } from 'path';
|
|
|
import { OSSService } from '../oss/oss.service';
|
|
|
import { ConfigService } from '@nestjs/config';
|
|
|
+import * as fs from 'fs';
|
|
|
|
|
|
@Controller('menu')
|
|
|
@ApiTags('menu')
|
|
|
@@ -89,10 +90,71 @@ export class MenuController {
|
|
|
const result = await this.oSSService.upload(file, {
|
|
|
filepath: this.configService.get('OSS_FOLDER'),
|
|
|
});
|
|
|
- if (result && result.length > 0) {
|
|
|
+ if (result && result.length > 0 && result[0].uploaded && result[0].path) {
|
|
|
return this.configService.get('OSS_DOMAIN') + '/' + result[0].path;
|
|
|
} else {
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ @Post('package/upload')
|
|
|
+ @ApiConsumes('multipart/form-data')
|
|
|
+ @UseInterceptors(
|
|
|
+ FileInterceptor('file', {
|
|
|
+ storage: diskStorage({
|
|
|
+ destination: './uploads_temp',
|
|
|
+ filename: (req, file, cb) => {
|
|
|
+ const randomName = Array(32)
|
|
|
+ .fill(null)
|
|
|
+ .map(() => Math.round(Math.random() * 16).toString(16))
|
|
|
+ .join('');
|
|
|
+ cb(null, `${randomName}${extname(file.originalname)}`);
|
|
|
+ },
|
|
|
+ }),
|
|
|
+ }),
|
|
|
+ )
|
|
|
+ async uploadPackage(@Body() body: { type: string }, @UploadedFile() file) {
|
|
|
+ try {
|
|
|
+ if (!file) {
|
|
|
+ console.error('UploadPackage: No file received');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ console.log('UploadPackage: Starting upload for', file.originalname, 'size:', file.size, 'path:', file.path);
|
|
|
+
|
|
|
+ let folder = 'OfflineVersion';
|
|
|
+ if (body.type === 'ga') {
|
|
|
+ folder = 'OfflineVersion_ga';
|
|
|
+ } else {
|
|
|
+ folder = 'OfflineVersion';
|
|
|
+ }
|
|
|
+ const result = await this.oSSService.upload(file, {
|
|
|
+ filepath: `helperCenter/${folder}`,
|
|
|
+ filename: basename(file.originalname, extname(file.originalname)),
|
|
|
+ isInitDateDic: false,
|
|
|
+ });
|
|
|
+
|
|
|
+ console.log('UploadPackage: Upload result', JSON.stringify(result));
|
|
|
+
|
|
|
+ if (file.path) {
|
|
|
+ fs.unlink(file.path, (err) => {
|
|
|
+ if (err) console.error('Error deleting temp file:', err);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ if (result && result.length > 0 && result[0].uploaded && result[0].path) {
|
|
|
+ return this.configService.get('OSS_DOMAIN') + '/' + result[0].path;
|
|
|
+ } else {
|
|
|
+ console.error('UploadPackage: Upload failed or returned invalid result');
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('UploadPackage: Exception caught', error);
|
|
|
+ if (file && file.path) {
|
|
|
+ fs.unlink(file.path, (err) => {
|
|
|
+ if (err) console.error('Error deleting temp file after exception:', err);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ return false; // Or throw HttpException
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|