如何为下载的文件Laravel 5.0指定扩展名

时间:2017-09-13 13:07:44

标签: php laravel file laravel-5

我试图在用户点击路线时下载文件,我能够这样做。但是,当用户想要下载docx或doc文件时,文件扩展名中没有.doc。为了更好地提出我的问题,我的代码如下:

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 个答案:

答案 0 :(得分:1)

您可以使用Content-Disposition标头指定下载文件的名称,但无需手动创建下载响应。 Laravel已经有一个内置的int函数来生成具有正确的Content-Disposition标题

的下载响应
$headers = ['Content-Type' => 'application/pdf'];
return response()->download($fileContent, 'filename.pdf', $headers);