2016-11-29 6 views
0

皆さん!私は、ユーザーがさまざまなファイルをダウンロードできるLaravel 5.2アプリケーションに取り組んでいます。これらのうちの1つは、ウェブサイトの設定方法や機能などを説明する「ユーザーガイド」です。私はPDFを別のページでストリーミングして、アプリケーション内に残しておきたいと思います。Laravel 5.2のPDFファイルをストリームする

public function userguidePDF(){ 

    return response()->stream('../public/download/userguide.pdf'); 

} 

しかし、これが返されます:私は使用していますコントローラがある のSymfony \ Componentに渡さ

引数1が\ HttpFoundation \ StreamedResponse :: __構築物は、() 呼び出し可能にする必要があり、文字列を与えられました、ライン117上/path/to/laravel/vendor/laravel/framework/src/Illuminate/Routing/ResponseFactory.php に呼ばれ、

を定義し私は、次の構文に私を加鉛方法、のためのインターネット上で検索しました:

return response()->stream($callback, 200, $headers); 

は残念ながら、私はそれを理解していないので、パラメータの詳細ドキュメントを見つけることができません。誰かが私に何を説明してもらえますか?$callback, 200, $headerがパラメータで、どのように使用できますか?

答えて

1

$コールバックはPDFを出力する関数でなければなりません。たとえば:

 $callback = function() 
     { 
       $handle = fopen("../public/download/userguide.pdf", "r"); 
       $filecontent= fread($handle, filesize("../public/download/userguide.pdf")); 
       fclose($handle); 

       return $filecontent; 
     }; 
+0

そして、何のような https://laravel.com/api/5.2/Illuminate/Routing/ResponseFactory.html#method_stream

EDIT

使用ヘッダは '200'と' $のheader'ありますか? –

+0

変数 '$ filename'とは何ですか? –

+0

200はHTTPステータスコードです(https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#2xx_Successを参照)。 – Sitethief

0

また、ここで

return Response::download($file, 'filename.pdf', $headers); 

がストリーミングのためのドキュメントであり、また、ダウンロードをお試しダウンロードを使用することができます。この

// We'll be outputting a PDF 
header('Content-Type: application/pdf'); 

// It will be called downloaded.pdf 
header('Content-Disposition: attachment; filename="downloaded.pdf"'); 
+0

こんにちは!私はダウンロード作業がありますが、私は特にストリームメソッドが必要です。 –

+0

あなたは@sitethiefによって与えられたコールバックの例を使用することができます –

+0

それはどちらも動作していません。 –