fix: iOS portrait photo saved as jpg extension

This commit is contained in:
Alex Tran 2025-08-28 18:09:08 -05:00
parent b6223af5ca
commit 4de4cd5a21
3 changed files with 11 additions and 5 deletions

View File

@ -60,5 +60,6 @@
"package.json": "package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lockb, bun.lock, pnpm-workspace.yaml, .pnpmfile.cjs"
},
"svelte.enable-ts-plugin": true,
"typescript.preferences.importModuleSpecifier": "non-relative"
"typescript.preferences.importModuleSpecifier": "non-relative",
"postman.settings.dotenv-detection-notification-visibility": false
}

View File

@ -36,6 +36,7 @@ interface UploadRequest {
auth: AuthDto | null;
fieldName: UploadFieldName;
file: UploadFile;
originalExtension: string | null;
}
export interface AssetMediaRedirectResponse {
@ -89,15 +90,15 @@ export class AssetMediaService extends BaseService {
throw new BadRequestException(`Unsupported file type ${filename}`);
}
getUploadFilename({ auth, fieldName, file }: UploadRequest): string {
getUploadFilename({ auth, fieldName, file, originalExtension }: UploadRequest): string {
requireUploadAccess(auth);
const originalExtension = extname(file.originalName);
const extension = originalExtension ?? extname(file.originalName);
const lookup = {
[UploadFieldName.ASSET_DATA]: originalExtension,
[UploadFieldName.ASSET_DATA]: extension,
[UploadFieldName.SIDECAR_DATA]: '.xmp',
[UploadFieldName.PROFILE_DATA]: originalExtension,
[UploadFieldName.PROFILE_DATA]: extension,
};
return sanitize(`${file.uuid}${lookup[fieldName]}`);

View File

@ -1,4 +1,5 @@
import { BadRequestException } from '@nestjs/common';
import { extname } from 'node:path';
import { GeneratedImageType, StorageCore } from 'src/cores/storage.core';
import { AssetFile } from 'src/database';
import { BulkIdErrorReason, BulkIdResponseDto } from 'src/dtos/asset-ids.response.dto';
@ -191,9 +192,12 @@ export function mapToUploadFile(file: ImmichFile): UploadFile {
}
export const asRequest = (request: AuthRequest, file: Express.Multer.File) => {
const requestFileName = request.body['filename'] as string;
console.log('requestFileName', requestFileName);
return {
auth: request.user || null,
fieldName: file.fieldname as UploadFieldName,
file: mapToUploadFile(file as ImmichFile),
originalExtension: requestFileName != null ? extname(requestFileName) : null,
};
};