2017-09-13 6 views
0

ユーザーがルートにヒットしたときにファイルをダウンロードしようとしていましたが、これを実行できました。ただし、ユーザーがdocxまたはdocファイルをダウンロードしたい場合、そのファイル拡張子には.docは含まれていません。より良い私のコードは以下の通りです、私の質問をするには:ダウンロードしたファイルの拡張子を指定する方法Laravel 5.0

Route::get('resumeDownload', function() { 
    $user = Auth::user(); 
    $path = $user->cv()->first()->path; //when the user uploads a document, i store 
    //the path of it in the database 
    $extension = explode(".", $path)[1]; //if the user uploaded a doc, returns .doc etc 
    $uploaded = Storage::get($path); //I get it from my storage 
    return (new \Illuminate\Http\Response($uploaded, 200)) 
      ->header('Content-Type', 'application/pdf'); 
}); 

ユーザーがPDFファイルをダウンロードしたい場合は、このコードは素晴らしい作品、しかし、.docファイルまたは.docxのファイルに対して、ダウンロードされたファイルはありませんがあります拡張。私はまた、拡張子を保存し、それが助けになる場合は、簡単にそれを取得することができます。 .doc、.docx、.pdf、および.txtのためにこの作業を行うにはどうしてですか?

答えて

1

ヘッダーはContent-Dispositionヘッダーを使用してダウンロードしたファイルの名前を指定できますが、ダウンロード応答を手動で作成する必要はありません。 Laravelはすでに適切なContent-Dispositionヘッダ

$headers = ['Content-Type' => 'application/pdf']; 
return response()->download($fileContent, 'filename.pdf', $headers); 
+0

あなたはどのように自分のコードから$含むFileContentをして下さい得るために私を言うことができるとダウンロード応答を生成するために構築されたint型の機能を持っています? – Muhammad

+0

file_get_contents($ path) –

関連する問題