From 26cee70d72e12611cd8a650fde3608a9305dec35 Mon Sep 17 00:00:00 2001 From: Aleksey Filippov Date: Thu, 19 Feb 2026 19:43:10 +0300 Subject: [PATCH] =?utf8?q?auto-claude:=20subtask-2-3=20-=20=D0=94=D0=BE?= =?utf8?q?=D0=B1=D0=B0=D0=B2=D0=B8=D1=82=D1=8C=20=D0=B0=D0=B2=D1=82=D0=BE-?= =?utf8?q?=D0=BA=D0=BE=D0=BD=D0=B2=D0=B5=D1=80=D1=82=D0=B0=D1=86=D0=B8?= =?utf8?q?=D1=8E=20MOV/AVI=20=E2=86=92=20MP4=20=D0=B2=20saveUploadedFile()?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit - Добавлена авто-конвертация MOV/AVI файлов в MP4 после saveAs() - При успешной конвертации оригинальный файл удаляется - URL в записи Files обновляется на MP4 версию - Если FFmpeg недоступен, файл сохраняется в оригинальном формате Co-Authored-By: Claude Opus 4.5 --- erp24/services/FileService.php | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/erp24/services/FileService.php b/erp24/services/FileService.php index e6ce4e2a..cea7bbe9 100755 --- a/erp24/services/FileService.php +++ b/erp24/services/FileService.php @@ -157,7 +157,22 @@ class FileService $targetFile = $filePath . $uniqueFileName; $file->saveAs($targetFile); - + + // Авто-конвертация MOV/AVI → MP4 + $extension = strtolower($file->extension); + $finalUrl = '/uploads' . $target_dir . $uniqueFileName; + if (in_array($extension, ['mov', 'avi'], true)) { + $mp4FileName = pathinfo($uniqueFileName, PATHINFO_FILENAME) . '.mp4'; + $mp4TargetFile = $filePath . $mp4FileName; + $convertedPath = self::convertToMp4($targetFile, $mp4TargetFile); + if ($convertedPath !== null) { + // Конвертация успешна - используем MP4 + $finalUrl = '/uploads' . $target_dir . $mp4FileName; + // Удаляем оригинальный MOV/AVI файл + @unlink($targetFile); + } + } + $type = 'image'; switch ($file->extension) { case 'txt': @@ -176,7 +191,7 @@ class FileService $fileRecord->entity_id = $entity_id; $fileRecord->entity = $entity; $fileRecord->file_type = $type; - $fileRecord->url = '/uploads' . $target_dir . $uniqueFileName; + $fileRecord->url = $finalUrl; if (!$fileRecord->save()) { Yii::error('Ошибка сохранения записи: ' . json_encode($fileRecord->getErrors(), JSON_UNESCAPED_UNICODE)); } -- 2.39.5