Скачать файл в Zend 1 (PHP): имя файла японское

Я использую Zend FW 1 для загрузки файла.

Файл нужно скачать, имя файла японское: るファイルを選択.pdf

$this->path: - это путь к файлу. Например: D:\るファイルを選択.pdf

Это мой код на PHP

public function send() {
    if($this->checkPath()) {
        // fileinfo extention enable
        $type = mime_content_type($this->path);

        if ($this->getRequest()->isSecure()) { // HTTPS sites - watch out for IE! KB812935 and KB316431.
            header('Content-Description: File Transfer');
            header('Cache-Control: max-age=10');
            header('Expires: '. gmdate('D, d M Y H:i:s', 0) .' GMT');
            header('Pragma: ');
        } else { //normal http - prevent caching at all cost
            header('Content-Description: File Transfer');
            header('Cache-Control: private, must-revalidate, pre-check=0, post-check=0, max-age=0');
            header('Expires: '. gmdate('D, d M Y H:i:s', 0) .' GMT');
            header('Pragma: no-cache');
        }

        if ($this->isIE()) {
            $name = rawurlencode($this->name);
        } else {
            $name = $this->s($this->name);
        }

        $name =  urlencode($name);
        $Disposition = "attachment;filename*=UTF-8''$name";
        $this->getResponse()->setHeader('Content-Type', $type . ";charset=utf-8")
                            ->setHeader('Content-Disposition', $Disposition, true)
                            ->setHeader('Content-Transfer-Encoding', 'binary', true)
                            ->setHeader('X-Sendfile', readfile($this->path), true)
                            ->sendResponse();

        unlink($this->path);
    }
}

Но mime_content_type($this->path) возвращаюсь:

mime_content_type(D:\るファイルを選択.pdf): не удалось открыть поток: Нет такого файла или каталога в ...

Я установил UTF-8 в getResponse


person mr.BaoNC    schedule 05.07.2016    source источник
comment
Это нормально работает mime_content_type() для японского имени файла. Возможно, ваш путь неверен или файл не существует.   -  person newage    schedule 05.07.2016
comment
Я проверил файл, затем увидел правильный путь к файлу и файл существует   -  person mr.BaoNC    schedule 22.07.2016


Ответы (1)


Попробуйте использовать finfo

$result = new finfo();
echo $result->file($filename, FILEINFO_MIME_TYPE);
person newage    schedule 22.07.2016