2013-08-30 96 views
1

我写了一个codeigniter类控制器来检查文件的MIME类型。这里是我的脚本cant在codeigniter中检查MIME类型

<?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);犯规回声什么..

但是路径文件是完全以正确的。如果我在节目中单击a href定位,那么它在浏览器中的文件..

请帮我对此

回答

0

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

其次,您的if未被输入的原因很可能是因为&& $mode==0部分。你在哪里宣布$mode变量?