2016-04-21 16 views
0

Ich habe die folgende Methode in der Steuerung geschrieben, die in einem Ordner alle Dateien durchläuft und gibt diese:Laravel - Abrufen von Dateien aus dem Speicher zum Download

$ files = Speicher :: Dateien ($ Galerie) ;

public function showGallery($gallery) 
    { 
     $gallery = base64_decode($gallery); 
     $gallery_name = explode('/', $gallery); 

     $directories = Storage::directories($gallery); 

     $galleries = $gallery_name; 
     unset($galleries[0]); 
     unset($galleries[1]); 
     array_pop($galleries); 

     $files = Storage::files($gallery); 

     $locations = array(); 
     foreach ($files as $file) 
     { 
      if($this->is_image($file)) 
      { 
       $locations[] = Image::make(storage_path('app/' . $file))->encode('data-url'); 
      } else 
      { 
       $locations[] = storage_path('app/' . $file); 
      } 
     } 

     //dd($locations); 

     $data = [ 
      'directories' => $directories, 
      'galleries'  => $galleries, 
      'gallery_path' => $gallery, 
      'gallery_name' => end($gallery_name), 
      'locations'  => $locations, 
     ]; 

     return view('private.user.gallery', $data); 
    } 

Danach ich Bilder von anderen Dateitypen am trennen.

Ich benutze die Intervention Image-Bibliothek, um Bilder öffentlich verfügbar und sichtbar zu machen.

Allerdings bin ich fest, wenn andere Dateien (als Symbole) wie PDF, doc, mov-Dateien angezeigt werden.

Wenn ich auf diese Symbole im Front-End klicke, bekomme ich diesen Fehler.

Link: http://lamotte.local/home/vagrant/projects/lamotte/storage/app/gallery/Brand/pdf-test.pdf

NotFoundHttpException in RouteCollection.php Linie 161:

Der Grund, warum diese Dateien sind in der Lagerung ist, da diese Dateien Zugriff gesteuert über ein Login-System sein müssen.

Gibt es eine Bibliothek, die damit umgehen kann?

Antwort

0

Was ich unzählige Male in der Vergangenheit getan haben, ist die Datei für den Benutzer streamen mit readfile()

Hoffe, es hilft!

Verwandte Themen