在laravel我正在制作一个上传文件的应用程序,用户可以下载同一个文件。
观看代码:
<h5><a href="/download/{{$filesharing->fileName}}/{{$filesharing->fileType}}">Download</a></h5>
路线代码:
Route::get('/download/{fileName}/{fileType}', 'FilesharingsController@download');
控制器代码:
public function download($fileName, $fileType){
$downloadPath = public_path(). '/assests/' . $fileName ;
$headers = array(
'Content-Type: application/octat-stream',
'Content-Type: application/pdf'
);
return Response::download($downloadPath, $fileName . '.' . $fileType, $headers);
}
请注意,当我上传文件时,我会删除其扩展名。
示例:如果我上传'sample.pdf'
,则会将其另存为'sample'
。
由于错误中的路径是正确的路径,我不知道出了什么问题。 该文件存在于该路径中。 Plz帮助
用于上传文件的代码是:
// Save uploaded file
if ($this->request->hasFile('file') && $this->request->file('file')->isValid()) {
$destinationPath = public_path() . '/assests/';
$fileName = $filesharing->fileName . '.' . $this->request->file('file')->guessClientExtension();
$this->request->file('file')->move($destinationPath, $fileName);
}
答案 0 :(得分:1)
您的$ downloadPath缺少文件扩展名。 Response :: download的第二个参数是向用户显示的文件名 。
您的变量应如下所示:
$downloadPath = public_path() . '/assets' . $fileName . '.' . $fileType;