1

我编写了一个 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);回声任何东西。

但是路径文件是完全正确的。如果我单击显示 href 锚点,它会在浏览器中播放文件。

4

1 回答 1

0

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

其次,你的if陈述没有被输入的原因很可能是因为那&& $mode==0部分。你在哪里声明$mode变量?

于 2013-08-30T07:02:05.010 回答