Загрузить .mov видео файл в Codeigniter

Я пытаюсь загрузить видеофайл с расширением .mov, другой видеофайл, такой как mp4, flv работает, но при попытке загрузить .mov он не работает.

вот мой код:

public function add_video(){
if (isset($_FILES['video']['name']) && $_FILES['video']['name'] != '') {
unset($config);
$date = date("ymd");
$configVideo['upload_path'] = './video';
$configVideo['max_size'] = '9000000000';
$configVideo['allowed_types'] = 'mov|avi|flv|wmv|mp3|mp4';
$configVideo['overwrite'] = FALSE;
$configVideo['remove_spaces'] = TRUE;
$video_name = $date.$_FILES['video']['name'];
$configVideo['file_name'] = $video_name;

$this->load->library('upload', $configVideo);
$this->upload->initialize($configVideo);
if(!$this->upload->do_upload('video')) {
echo $this->upload->display_errors();
}else{
$videoDetails = $this->upload->data();
$data['video_name']= $configVideo['file_name'];
$data['video_detail'] = $videoDetails;
$this->load->view('/upload_video/show', $data);
}

}else{
echo "Please select a file";
}
}

Сообщение об ошибке, которое я получаю после загрузки видео .mov это
Тип файла, который вы пытаетесь загрузить, запрещен.
да, с помощью знака * разрешенный тип разрешите проблему, но это позволит пользователю загрузить все файлы расширений.

ПРИМЕЧАНИЕ: я использую Codeigniter 3.0.4

1

Решение

Класс загрузки файлов разрешает расширения файлов из allowed_types к фактическим MIME-типам, используя конфигурацию в application/config/mimes.php

Я думаю, что происходит то, что ваш .мов файл имеет другой тип MIME, чем видео / QuickTime. Вы можете проверить конфигурацию по умолчанию здесь mimes.php

Что вам нужно сделать, это проверить точный MIME-тип вашего файла и добавить его в mimes.php.

Вы можете сделать это с помощью mime_content_type.

echo mime_content_type('filename.mov');

Затем просто измените следующую строку в приложение / Config / mimes.php

'mov'   =>  'video/quicktime',

добавив один или несколько разных типов MIME. Я смог решить ту же проблему, добавив видео / X-QuickTime

'mov'   =>  array('video/quicktime', 'video/x-quicktime'),

Некоторые из возможных типов MIME после этого источника Filext.com являются: видео / QuickTime, видео / X-QuickTime, изображения / MOV, аудио / AIF, аудио / X-MIDI, аудио / X-WAV, видео / AVI

4

Другие решения

CodeIgniter проверяет содержимое файла, чтобы убедиться, что оно действительно соответствует ожидаемому типу MIME.

Сначала убедитесь, что для вашего файла обнаружен правильный MIME, с помощью этого кода:

// should be "video/quicktime"$mime = finfo_file(finfo_open(FILEINFO_MIME_TYPE), $filepath);

Я предполагаю, что вы используете хотя бы PHP 5.3. Поскольку вы можете загружать файлы других типов, я предполагаю, что приведенный выше код будет работать без ошибок, в противном случае вам придется исправить обнаружение MIME (например, Apache «волшебный файл»).

Итак, обычно единственный MIME для .mov является video/quicktime, но если когда-нибудь у вас есть что-то еще, например video/hdmovВы можете добавить его в application/config/mimes.php:

// replace:
'mov' => 'video/quicktime',
// with:
'mov' => array('video/quicktime', 'video/hdmov'),

Если вы получили пустой результат, ваш файл не был распознан (или поврежден), попробуйте другой .mov файлы, чтобы увидеть, если они работают.

Увидеть Upload::_file_mime_type() подробности о том, как CodeIgniter пытается обнаружить файл MIME.

1

По вопросам рекламы [email protected]