Add UTF-8 filename decoding for multipart uploads in EquipmentService
- Introduced a new utility function to decode filenames from multipart uploads that may be misencoded as ISO-8859-1. - Updated EquipmentService to utilize this function when processing file attachments, ensuring correct original file names are stored and returned.
This commit is contained in:
@@ -8,6 +8,7 @@ import { EquipmentStatus, Prisma } from '@prisma/client';
|
||||
import type { Equipment } from '@prisma/client';
|
||||
import { Response } from 'express';
|
||||
import type { Express } from 'express';
|
||||
import { decodeUtf8FilenameFromMultipart } from '../../common/multipart-filename';
|
||||
import { setListHeaders } from '../../common/http';
|
||||
import { PrismaService } from '../../prisma/prisma.service';
|
||||
import type { StoredAttachmentMeta } from '../../storage/storage.service';
|
||||
@@ -133,10 +134,11 @@ export class EquipmentService {
|
||||
|
||||
await this.deleteStoredAttachmentIfAny(item);
|
||||
|
||||
const objectKey = this.storage.buildEquipmentObjectKey(id, file.originalname);
|
||||
const decodedOriginalName = decodeUtf8FilenameFromMultipart(file.originalname);
|
||||
const objectKey = this.storage.buildEquipmentObjectKey(id, decodedOriginalName);
|
||||
const meta: StoredAttachmentMeta = {
|
||||
objectKey,
|
||||
originalFileName: file.originalname,
|
||||
originalFileName: decodedOriginalName,
|
||||
contentType: file.mimetype || 'application/octet-stream',
|
||||
sizeBytes: file.size,
|
||||
};
|
||||
@@ -217,7 +219,7 @@ export class EquipmentService {
|
||||
}
|
||||
return {
|
||||
objectKey: raw.objectKey,
|
||||
originalFileName: raw.originalFileName,
|
||||
originalFileName: decodeUtf8FilenameFromMultipart(raw.originalFileName),
|
||||
contentType: raw.contentType,
|
||||
sizeBytes: raw.sizeBytes,
|
||||
downloadUrl,
|
||||
|
||||
Reference in New Issue
Block a user