File.php第41行中的FileNotFoundException

时间:2015-10-03 05:17:23

标签: php laravel-5

在laravel我正在制作一个上传文件的应用程序,用户可以下载同一个文件。

但每次我点击下载我都会收到此错误。 enter image description here

观看代码:

<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帮助

文件夹结构: enter image description here

用于上传文件的代码是:

// 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);
    }

1 个答案:

答案 0 :(得分:1)

您的$ downloadPath缺少文件扩展名。 Response :: download的第二个参数是向用户显示的文件名

您的变量应如下所示:

$downloadPath = public_path() . '/assets' . $fileName . '.' . $fileType;