2016-07-19 3 views
0

Ich vermisse hier etwas außergewöhnlich offensichtlich, aber ich benutze yii2-flysystem zusammen mit Dropbox zum Lesen und Schreiben von Dateien.Wie erzwinge ich den Download einer Datei über Flysystem?

Ich kann sie ohne Probleme auf Dropbox hochladen und schreiben, aber dann, wenn wie folgt zu lesen:

$file = Yii::$app->dropboxFs->read($fn); 

..alle, die mir gibt, ist eine Zeichenfolge (/ tmp/phpQkg8mJ).

Wie zwinge ich den Download der Datei, die ich gerade lese? Ich bin mir nicht sicher, worauf sich dieser temporäre Speicherort bezieht.

+0

ist das eine Drittanbieter-Erweiterung? Wenn ja, bitte URL angeben. – marmeladze

+0

http://flysystem.thephpleague.com/ –

Antwort

0

Probieren Sie die Funktion readfile(). Laut Beispiel sollte Ihr Code in etwa so aussehen:

if (file_exists($file)) { 
    header('Content-Description: File Transfer'); 
    header('Content-Type: application/octet-stream'); 
    header('Content-Disposition: attachment; filename="'.basename($file).'"'); 
    header('Expires: 0'); 
    header('Cache-Control: must-revalidate'); 
    header('Pragma: public'); 
    header('Content-Length: ' . filesize($file)); 
    readfile($file); 
    exit; 
} 
+0

Leider file_exists ($ file) gibt false zurück ... wenn ich readfile ($ datei) bekomme ich 'No solche Datei oder Verzeichnis' –