2016-08-09 84 views
0

Ich versuche, Funktionalität für eine benutzerdefinierte wordpress Plugin zu erstellen, wo, wenn der Benutzer auf den Download-Button klickt, die entsprechende Datei aus dem Verzeichnis sollte im Zusammenhang mit diesem Beitrag heruntergeladen werden.Benutzerdefinierte Download-Funktionalität für WordPress-Plugin

Ich möchte nicht, dass die Datei direkt von der URL zugegriffen werden kann und nur den Benutzer autorisieren, um Datei herunterladen zu dürfen.

class DownloadM{ 
function __construct(){ 

} 
function setDownload($file){ 
    //$file = ROOT_DIR_PATH."wp-content/uploads/2016/07/PDF.zip"; 
    echo "<a href='".$file."'>Click here to download</a>"; 
    ob_start(); 

    header("Pragma: public"); 
    header("Expires: 0"); 
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
    header("Cache-Control: public"); 
    header("Content-Description: File Transfer"); 
    header("Content-type: application/octet-stream"); 
    header("Content-Disposition: attachment; filename=PDF.zip"); 
    header("Content-Transfer-Encoding: binary"); 
    header("Content-Length: ".filesize($file)); 
    flush(); 
    ob_clean(); 
    readfile($file); 
} 
} 

Die Datei korrekt heruntergeladen zu werden, wenn ich den Link in dem href Tag oder zugegriffen es aus der URL direkt platziert.

Aber wenn ich die Datei im Header auto herunterladen setzte es nicht

für Sie

Antwort

0

Einfache Lösung funktioniert:

header("Content-Type: application/force-download");