1

ファイルの MIME タイプをチェックする CodeIgniter クラス コントローラを作成しました。これが私のスクリプトです

<?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 アンカーをクリックすると、ブラウザでファイルが再生されます。

4

1 に答える 1

0

PHP 関数で使用されるファイルへのパスは、URL からの相対パスではなく、サーバーのファイル システム内の絶対パスである必要があります。ページからエコーgetcwd()してみてください。ディレクトリへの絶対パスが表示されます。

第二に、あなたのifステートメントが入力されていない理由は、おそらく&& $mode==0部品が原因です。$mode変数をどこで宣言していますか?

于 2013-08-30T07:02:05.010 に答える