codeigniter视频上传

时间:2013-04-02 08:13:37

标签: php codeigniter

我正在尝试上传视频。

我的mime配置:

'wmv' => array('video/wmv', 'video/x-ms-wmv', 'flv-application/octet-stream', 'application/octet-stream'),
'flv' => array('video/x-flv', 'flv-application/octet-stream', 'application/octet-stream'),
'mp4' => 'video/mp4',
'3gp' => 'video/3gpp'

我的观点:

 <div id="upload">
        <?php
        echo form_open_multipart('audio');
        echo form_upload('userfile');
        echo form_submit('upload','Upload');
        echo form_close();
        ?>
</div>

我的控制器:

 function index() {
    $this->load->model('Audio_model');
    if ($this->input->post('upload')) {
        $this->Audio_model->do_upload();
    }
    $this->load->view('v_audio');
}  

我的模特:

 function do_upload() {
    $config = array(
        'allowed_types' =>  'mp4|3gp|flv|mp3',
        'max_size'=>'100000',
        'upload_path' => $this->gallery_path
    );
    $this->load->library('upload', $config);
    if ($this->upload->do_upload()) {
        echo "Upload success!";
    } else {
        echo "Upload failed!";
    }
}  

我可以成功上传mp3,但不是mp4,3gp或者flv,它们都无法上传。

3 个答案:

答案 0 :(得分:2)

在config / mimes.php中添加mime类型

'flv'    => array('video/x-flv', 'flv-application/octet-stream', 'application/octet-stream'),
'mp4' => 'video/mp4',
'3gp' => 'video/3gpp'  

并在根文件夹中使视频文件夹足够.....

答案 1 :(得分:0)

检查上传路径并将名称传递给$ this-&gt; upload-&gt; do_upload('userfile')并在php.ini中增加max_size(upload_max_filesize = 10M)

答案 2 :(得分:0)

$allowedExts = array("jpg", "jpeg", "gif", "png", "mp3", "mp4", "wma");
        $extension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);

        if ((($_FILES["file"]["type"] == "video/mp4")
            || ($_FILES["file"]["type"] == "audio/mp3")
            || ($_FILES["file"]["type"] == "audio/wma")
            || ($_FILES["file"]["type"] == "image/pjpeg")
            || ($_FILES["file"]["type"] == "image/gif")
            || ($_FILES["file"]["type"] == "image/jpeg"))

                && ($_FILES["file"]["size"] < 20000)
                && in_array($extension, $allowedExts))

            {
                    if ($_FILES["file"]["error"] > 0)
                            {
                                  echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
                            }
                    else
                            {
                                  echo "Upload: " . $_FILES["file"]["name"] . "<br />";
                                  echo "Type: " . $_FILES["file"]["type"] . "<br />";
                                  echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
                                  echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";
                                  if (file_exists("upload/" . $_FILES["file"]["name"]))
                                        {
                                                echo $_FILES["file"]["name"] . " already exists. ";
                                        }
                                  else
                                        {
                                                move_uploaded_file($_FILES["file"]["tmp_name"],
                                                "video/" . $_FILES["file"]["name"]);
                                                echo "Stored in: " . "video/" . $_FILES["file"]["name"];
                                        }
                            }
            }
        else
            {
                    echo "Invalid file";