2016-04-10 5 views
0

Wie bekomme ich Dateien im Speicher?Laravel Storage Fassade und Dateien abrufen

Ich baue eine Route und richtete sie auf [email protected]. Methode ist unter

Aber ich bekomme Kauderwelsch, wahrscheinlich Rohdaten. Wie kann ich den Browser dazu bringen, ein Bild anzuzeigen, wenn die Datei ein Bild ist oder es herunterladen, wenn die Datei beispielsweise a.xls ist?

Antwort

0
$validPath = 'valid-path-inside-local-storage'; 
    $mimeType = Storage::mimeType($validPath); 
    $file = Storage::disk(env('STORAGE_TO_USE','local'))->get($validPath); 
    return (new Response($file, 200)) 
     ->header('Content-Type', $mimeType); 

Ich hoffe, ich habe nichts vermisst.

0

Für Ihre Route folgt definieren:

Route::get('docs/{file}', '[email protected]'); 

Und dies Ihr Controller

class DocumentController extends BaseController 
{ 
    public function getDoc($file){ 
     $path = 'pathToDirectory/'.$file; 
     if(Storage::disk('yourDisk')->exists($path)){ 
     $attachment = Storage::disk('yourDisk')->get($path); 
     $type = Storage::disk('yourDisk')->mimeType($path); 
     return Response::make($attachment, 200)->header("Content-Type", $type); 
     }else{ 
     return Response::json('This file does not exists.'); 
     } 
    } 
}