1
Ich benutze Zend FW 1
, um die Datei herunterzuladen.Datei herunterladen in Zend 1 (PHP): Dateiname ist japanisch
Datei benötigen herunterladen japanische Dateinamen haben: るファイルを選択.pdf
$this->path:
ist Dateipfad. Ex: D:\るファイルを選択.pdf
Dies ist mein Code in 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);
}
}
Aber mime_content_type($this->path)
retun:
mime_content_type (D: \ る フ ァ イ ル を 選 択 .pdf): failed to open stream: No such Datei oder ein Verzeichnis in ...
I UTF-8
in getResponse
gesetzt hatte
Es ist gut funktionieren 'mime_content_type()' für japanische Dateinamen zu verwenden. Vielleicht ist Ihr Pfad falsch oder die Datei existiert nicht. – newage
Ich überprüfte Datei dann sehen Dateipfad korrekt und Datei existiert –