2015-12-24 22 views
5

Also ich benutze Laravel 5 und ich versuchte, eine ausgewählte Datei zu erzwingen, aber nichts passiert.erzwinge Download-Datei mit Laravel

public function downloadUserFile(){ 
     $result = $_POST['filename']; 
     $entry = File::where('filename', $result)->firstOrFail(); 
     $file = Storage::disk()->get($entry->filePath); 
     $headers = array('Content-Type' => $entry->mimetype); 
     return response()->download(storage_path($entry->filePath), $result, $headers); 
} 

und die Response-Header zu sein scheinen ok

Accept-Ranges: none 
Cache-Control: public 
Connection: Keep-Alive 
Content-Disposition: attachment; filename="SIGNAL - Nadezdata.mp3" 
Content-Length: 4205059 
Content-Type: audio/mpeg 

Sie wissen, was falsch ist?

Antwort

1

Ich denke, das Problem liegt in Pfaden.

standardmäßig in config/filesystems.php lokalen Pfad ist so definiert: storage_path('app') und Sie kostenlos herunterladen gehen in den folgenden Pfad: storage_path($entry->filePath) (kein app hier enthalten).

Was Sie tun sollten, ändert sich:

return response()->download(storage_path($entry->filePath), $result, $headers); 

in:

return response()->download(storage_path('app/'.$entry->filePath), $result, $headers); 
+0

Ich habe es schon geändert. Aber ich habe nichts an die Aussicht weitergegeben. Könnte das das Problem sein? – Alex

+0

Welche Ansicht meinst du? Sie verwenden hier keine Ansicht, nach dem Klick Sie einfach zwingen Browser zum Herunterladen der Datei und das ist es –

+0

Aber nichts passiert. Es gibt keinen erzwungenen Download – Alex