无法在CodeIgniter中检查Mime类型

时间:2013-08-30 04:39:41

标签: codeigniter mime-types

我编写了一个CodeIgniter类控制器来检查文件的mimetype。这是我的剧本

<?php
class test_file extends CI_Controller{
    public function __construct() {
        parent::__construct();
        @session_start();
        $this->load->library('encrypt');
        $this->load->helper('file');
    }

    function index()
    {
        $path="./post_files/Catherine_Part1.wmv";
        echo "<a href='".base_url().$path."'>Show</a>";
        if(function_exists('mime_content_type') &&$mode==0)
            echo mime_content_type($path);
        else if(function_exists('finfo_open')&&$mode==0)
        { 
            $finfo = finfo_open(FILEINFO_MIME);
            $mimetype = finfo_file($finfo, $path);
            echo $mimetype;
        }
        else
            echo "no functions working";
        echo get_mime_by_extension($path);
    }
}

?>

问题在于它始终打印no functions working

这意味着存在mime_content_type()finfo_open()两个函数。但是怎么会发生这种情况呢?

同样echo get_mime_by_extension($path);不回应任何内容。

然而,路径文件完全正确。如果我点击show a href anchor,那么它会在浏览器中播放该文件。

1 个答案:

答案 0 :(得分:0)

php函数使用的文件路径需要是服务器文件系统中的绝对路径,而不是相对于URL。尝试从您的页面回显getcwd(),它应该为您提供目录的绝对路径。

其次,您输入if语句的原因很可能是因为&& $mode==0部分。你在哪里声明$mode变量?