我试图在用户点击路线时下载文件,我能够这样做。但是,当用户想要下载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工作?
答案 0 :(得分:1)
您可以使用Content-Disposition
标头指定下载文件的名称,但无需手动创建下载响应。 Laravel已经有一个内置的int函数来生成具有正确的Content-Disposition
标题
$headers = ['Content-Type' => 'application/pdf'];
return response()->download($fileContent, 'filename.pdf', $headers);