$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':
$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));
}