2016-09-20 6 views
0

ich einen Ajax-Aufruf muss ein PHP-Skript gehen, eine Datei herunterzuladen,Herunterladen einer Datei in PHP

$filename = $_SERVER['DOCUMENT_ROOT'].$prospectusFiles[0]['url']; 
    header('Content-Description: File Transfer'); 
    header('Content-Type: application/octet-stream'); 
    header('Content-Disposition: attachment; filename='.urlencode($filename)); 
    header('Content-Transfer-Encoding: binary'); 
    header('Expires: 0'); 
    header('Cache-Control: must-revalidate'); 
    header('Pragma: public'); 
    header('Content-Length: ' . filesize($filename)); 
    echo file_get_contents($filename); 

Und

$file_name='prospectus.pdf'; 
    $file_url = $_SERVER['DOCUMENT_ROOT'].$prospectusFiles[0]['url']; 
    header('Content-Type: application/octet-stream'); 
    header("Content-Transfer-Encoding: Binary"); 
    header("Content-disposition: attachment; filename=\"".$file_name."\""); 
    echo readfile($file_url); 

Der Dateiname versucht ive sowohl der absolute Pfad ist und es ist richtig. Was ist falsch, könnte es hier ein Config Problem geben?

+1

** WIE ** funktioniert das nicht? kein Download? korrumpierter Download? falscher Download? –

+0

Bitte erklären Sie genaue Details darüber, was "nicht funktioniert", wie @Mark B sagte. Darüber hinaus echo ein binärer Byte-Stream zu einem Ajax-Aufruf. Je nachdem, was Sie mit diesen Daten tun, können beim Rendern in JavaScript Probleme auftreten. – eggmatters

Antwort

0

Ihre Datei wird mit einem einfachen Link (Sie können das Ziel = "_ blank") und nicht ein "Ajax Call" herunterladen.