mirror of
https://github.com/immich-app/immich.git
synced 2025-08-30 23:02:39 -04:00
fix: iOS portrait photo saved as jpg extension
This commit is contained in:
parent
b6223af5ca
commit
4de4cd5a21
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@ -60,5 +60,6 @@
|
|||||||
"package.json": "package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lockb, bun.lock, pnpm-workspace.yaml, .pnpmfile.cjs"
|
"package.json": "package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lockb, bun.lock, pnpm-workspace.yaml, .pnpmfile.cjs"
|
||||||
},
|
},
|
||||||
"svelte.enable-ts-plugin": true,
|
"svelte.enable-ts-plugin": true,
|
||||||
"typescript.preferences.importModuleSpecifier": "non-relative"
|
"typescript.preferences.importModuleSpecifier": "non-relative",
|
||||||
|
"postman.settings.dotenv-detection-notification-visibility": false
|
||||||
}
|
}
|
||||||
|
@ -36,6 +36,7 @@ interface UploadRequest {
|
|||||||
auth: AuthDto | null;
|
auth: AuthDto | null;
|
||||||
fieldName: UploadFieldName;
|
fieldName: UploadFieldName;
|
||||||
file: UploadFile;
|
file: UploadFile;
|
||||||
|
originalExtension: string | null;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface AssetMediaRedirectResponse {
|
export interface AssetMediaRedirectResponse {
|
||||||
@ -89,15 +90,15 @@ export class AssetMediaService extends BaseService {
|
|||||||
throw new BadRequestException(`Unsupported file type ${filename}`);
|
throw new BadRequestException(`Unsupported file type ${filename}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
getUploadFilename({ auth, fieldName, file }: UploadRequest): string {
|
getUploadFilename({ auth, fieldName, file, originalExtension }: UploadRequest): string {
|
||||||
requireUploadAccess(auth);
|
requireUploadAccess(auth);
|
||||||
|
|
||||||
const originalExtension = extname(file.originalName);
|
const extension = originalExtension ?? extname(file.originalName);
|
||||||
|
|
||||||
const lookup = {
|
const lookup = {
|
||||||
[UploadFieldName.ASSET_DATA]: originalExtension,
|
[UploadFieldName.ASSET_DATA]: extension,
|
||||||
[UploadFieldName.SIDECAR_DATA]: '.xmp',
|
[UploadFieldName.SIDECAR_DATA]: '.xmp',
|
||||||
[UploadFieldName.PROFILE_DATA]: originalExtension,
|
[UploadFieldName.PROFILE_DATA]: extension,
|
||||||
};
|
};
|
||||||
|
|
||||||
return sanitize(`${file.uuid}${lookup[fieldName]}`);
|
return sanitize(`${file.uuid}${lookup[fieldName]}`);
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { BadRequestException } from '@nestjs/common';
|
import { BadRequestException } from '@nestjs/common';
|
||||||
|
import { extname } from 'node:path';
|
||||||
import { GeneratedImageType, StorageCore } from 'src/cores/storage.core';
|
import { GeneratedImageType, StorageCore } from 'src/cores/storage.core';
|
||||||
import { AssetFile } from 'src/database';
|
import { AssetFile } from 'src/database';
|
||||||
import { BulkIdErrorReason, BulkIdResponseDto } from 'src/dtos/asset-ids.response.dto';
|
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) => {
|
export const asRequest = (request: AuthRequest, file: Express.Multer.File) => {
|
||||||
|
const requestFileName = request.body['filename'] as string;
|
||||||
|
console.log('requestFileName', requestFileName);
|
||||||
return {
|
return {
|
||||||
auth: request.user || null,
|
auth: request.user || null,
|
||||||
fieldName: file.fieldname as UploadFieldName,
|
fieldName: file.fieldname as UploadFieldName,
|
||||||
file: mapToUploadFile(file as ImmichFile),
|
file: mapToUploadFile(file as ImmichFile),
|
||||||
|
originalExtension: requestFileName != null ? extname(requestFileName) : null,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user