我编写了一个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,那么它会在浏览器中播放该文件。
答案 0 :(得分:0)
php函数使用的文件路径需要是服务器文件系统中的绝对路径,而不是相对于URL。尝试从您的页面回显getcwd()
,它应该为您提供目录的绝对路径。
其次,您输入if
语句的原因很可能是因为&& $mode==0
部分。你在哪里声明$mode
变量?