2016-04-25 5 views
1

Wenn ich auf einen Link mit URL: website.com/open/pdf/Document_One_Drag_3.pdf geklickt habe, wird das PDF im Browser geöffnet und nicht heruntergeladen. Dies ist mein Code in Route.phpWie öffne ich PDF online mit Laravel 5.2?

Route::get('/open/pdf/{filename}', function($filename) 
{ 
    // Check if file exists in app/storage/file folder 
    $file_path = public_path('uploads/docs/'.$filename); 
    if (file_exists($file_path)) 
    { 
     return Response::make(file_get_contents($file_path), 200, [ 
      'Content-Type' => 'application/pdf', 
      'Content-Disposition' => 'inline; '.$filename, 
     ]); 
    } 
    else 
    { 
     // Error 
     exit('Requested file does not exist on our server!'); 
    } 
}); 

die PDF-Datei noch das Herunterladen und nicht im Browser geöffnet. Was ist falsch ?

+0

versuchen diese http://stackoverflow.com/questions/25938294/laravel-display-a-pdf-file-in-storage-without -forcing-download –

Antwort

0

Betrachtet von Laravel 5.2, Die Download-Methode kann verwendet werden, um eine Antwort zu generieren, die den Browser des Benutzers zwingt, die Datei unter dem angegebenen Pfad herunterzuladen.

$pathToFile = public_path(). "/download/fileName.pdf"; 
return response()->download($pathToFile); 

Die Download-Methode übernimmt einen Dateinamen als zweites Argument an die Methode, die die Dateinamen wird feststellen, dass die Datei durch den Benutzer gesehen heruntergeladen. Schließlich können Sie eine Reihe von HTTP-Header als drittes Argument an die Methode übergeben:

return response()->download($pathToFile, $name, $headers); 

Also, Sie

$headers = ['Content-Type' => 'application/pdf']; 

als dritter Parameter verwenden.

Diese Information könnte nützlich sein:

Hinweis: Symfony HttpFoundation, die Datei-Downloads verwaltet, muss die Datei ein ASCII-Dateinamen haben heruntergeladen werden.

L5.2 Documentation

in Browser zu öffnen

<a href="{{url('/your/path/to/pdf/')}}" target="_blank" >My PDf </a> 
+0

Also, wenn ich die Datei öffnen wollte, sollte ich 'return response() -> file ($ pathToFile, $ headers);' Recht ? und das Ergebnis ist die PDF-Datei wird noch heruntergeladen. Ich weiß nicht, was falsch ist. –

+0

Versuchen Sie nicht, eine Datei herunterzuladen? Oder möchten Sie einfach die PDF-Datei im Browser-Tab geöffnet sehen? Der von Ihnen geschriebene Code steht zum Download bereit. – VipindasKS

+0

Ich möchte das PDF im Browser nicht herunterladen. –