2016-06-10 3 views
1

Я успешно загружаю файлы .pdf в свой ковш AWS S3 с использованием Laravel 5.2. Я могу перейти непосредственно в ведро на AWS S3 и загрузить каждый .pdf без проблем. Когда я пытаюсь загрузить определенные .pdfs, используя приведенный ниже код, файл не может быть открыт браузером или Acrobat Pro. Вот код:Определенные файлы .pdf Загрузка файлов в браузере/Acrobat Pro - использование Laravel & AWS S3

$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; 

В браузере я получаю следующее сообщение об ошибке: Failed to load PDF document В Acrobat Pro, я получаю следующее сообщение об ошибке: There was an error opening this document. The file is damaged and could not be repaired.

.pdf, способен успешно открыт в другой компании Apple таких как Предварительный просмотр или Ским. Кроме того, старший .pdf-файл может быть загружен и загружен успешно.

ответ

0

Пока неясно, в чем проблема с предыдущим использованием echo $file;, теперь это работает при переходе на использование метода Laravel 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);