Php 在Codeigniter中上载.mov视频文件

Php 在Codeigniter中上载.mov视频文件,php,codeigniter,codeigniter-3,Php,Codeigniter,Codeigniter 3,我想上传扩展名为.mov的视频文件,其他视频文件,如mp4,flv正在工作,但当我想上传.mov时,它不工作 这是我的密码: public function add_video(){ if (isset($_FILES['video']['name']) && $_FILES['video']['name'] != '') { unset($config); $date = date("ymd"); $configVideo

我想上传扩展名为.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

Codeigniter检查文件内容,以确保它实际上是预期的MIME类型

首先,使用以下代码验证是否为您的文件检测到正确的MIME:

// should be "video/quicktime"
$mime = finfo_file(finfo_open(FILEINFO_MIME_TYPE), $filepath);
我假设您至少使用了PHP5.3。由于您可以上载其他文件类型,我假设上述代码可以正常工作而不会产生错误,否则您必须修复MIME检测,例如Apache magic文件

因此,通常.mov的唯一MIME是video/quicktime,但如果您有其他内容,例如video/hdmov,您可以将其添加到application/config/mimes.php:

如果您得到的结果为空,您的文件未被识别或以某种方式损坏,请尝试使用其他.mov文件,以查看它们是否工作


有关CodeIgniter如何尝试检测文件MIME的详细信息,请参阅。

CodeIgniter检查文件内容,以确保它实际上是预期的MIME类型

首先,使用以下代码验证是否为您的文件检测到正确的MIME:

// should be "video/quicktime"
$mime = finfo_file(finfo_open(FILEINFO_MIME_TYPE), $filepath);
我假设您至少使用了PHP5.3。由于您可以上载其他文件类型,我假设上述代码可以正常工作而不会产生错误,否则您必须修复MIME检测,例如Apache magic文件

因此,通常.mov的唯一MIME是video/quicktime,但如果您有其他内容,例如video/hdmov,您可以将其添加到application/config/mimes.php:

如果您得到的结果为空,您的文件未被识别或以某种方式损坏,请尝试使用其他.mov文件,以查看它们是否工作

有关CodeIgniter如何检测文件MIME的详细信息,请参阅。

使用application/config/mimes.php中的配置将文件扩展名从允许的类型解析为实际的MIME类型

我认为可能的是,您的.mov文件的MIME类型与video/quicktime不同。您可以在此处检查默认配置

您需要做的是检查文件的确切MIME类型,并将其添加到mimes.php中

你可以使用

然后只需在application/config/mimes.php中更改以下行

通过添加一个或多个不同的MIME类型。我通过添加视频/x-quicktime解决了同样的问题

'mov'   =>  array('video/quicktime', 'video/x-quicktime'),
此源后面可能的MIME类型有:video/quicktime、video/x-quicktime、image/mov、audio/aiff、audio/x-midi、audio/x-wav、video/avi

使用application/config/mimes.php中的配置将文件扩展名从允许的类型解析为实际的MIME类型

我认为可能的是,您的.mov文件的MIME类型与video/quicktime不同。您可以在此处检查默认配置

您需要做的是检查文件的确切MIME类型,并将其添加到mimes.php中

你可以使用

然后只需在application/config/mimes.php中更改以下行

通过添加一个或多个不同的MIME类型。我通过添加视频/x-quicktime解决了同样的问题

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

此源后面可能的MIME类型有:视频/quicktime、视频/x-quicktime、图像/mov、音频/aiff、音频/x-midi、音频/x-wav、视频/avi

检查文件权限并授予777权限检查文件权限并授予777权限
'mov'   =>  array('video/quicktime', 'video/x-quicktime'),