2016-06-10 1 views
1

Ich lade erfolgreich .pdf-Dateien mit Laravel 5.2 in meinen AWS S3-Bucket. Ich kann direkt auf AWS S3 zugreifen und jedes .pdf ohne Probleme herunterladen. Wenn ich versuche, bestimmte .pdfs mit dem unten stehenden Code herunterzuladen, kann die Datei nicht vom Browser oder Acrobat Pro geöffnet werden. Hier ist der Code:Bestimmte .pdf-Dateidownloads im Browser/Acrobat Pro beschädigt - Laravel & AWS S3 verwenden

$file = Storage::disk('s3')->get($myfile); 

// Set headers and force download 
header("Content-type:application/pdf"); 
header("Content-Disposition:attachment;filename=file.pdf"); 
echo $file; 

im Browser ich die folgenden Fehlermeldung erhalten: Failed to load PDF document In Acrobat Pro, erhalte ich die folgende Fehlermeldung: There was an error opening this document. The file is damaged and could not be repaired.

Das .pdf der Lage ist, geöffnet werden, erfolgreich in anderem Apple Programme wie Vorschau oder Skim. Außerdem kann eine ältere PDF-Datei erfolgreich hochgeladen und heruntergeladen werden.

Antwort

0

Während ich nicht klar bin, was das Problem mit der vorherigen Verwendung von echo $file; war, funktioniert dies jetzt bei der Überarbeitung der Laravel-Methode return Response::make($file, 200, $headers);.

// Get the file from s3 
$file = Storage::disk('s3')->get($myfile); 

// Set headers 
$headers = array(
    'Content-type' => 'application/pdf', 
    'Content-Disposition' => 'attachment; filename=filename=file.pdf" 
); 

// Download 
return Response::make($file, 200, $headers);