2017-09-29 3 views

Antwort

1

Sie können nicht Response::withFile() für Remote-Dateien verwenden, es funktioniert nur mit lokalen Dateien.

Wenn Sie Remote-Dateien bereitstellen möchten, müssen Sie sie entweder temporär auf Ihrem Server speichern oder selbst eine geeignete Download-Antwort erstellen. Verwenden Sie zum Beispiel den Callback-Stream CakePHP, damit der Antworttext die Daten manuell ausgibt.

Hier ist ein kurzes Beispiel (nicht-Bereichsanforderungen unterstützt):

return $this->response 
    ->withType(pathinfo($remote_file, \PATHINFO_EXTENSION)) 
    ->withDownload(basename($remote_file)) 
    ->withLength(filesize($remote_file)) 
    ->withBody(new \Cake\Http\CallbackStream(function() use ($remote_file) { 
     ob_end_flush(); 
     ob_implicit_flush(); 
     readfile($remote_file); 
    })); 

Siehe auch

+0

Vielen Dank, das hat mir sehr geholfen. – Stefan

Verwandte Themen