如何从 public 文件夹中获取图像文件作为 Laravel 中的响应?

How to get image file from public folder as a response in Laravel?

这些是我在控制器中尝试获取图像作为响应的不同方式。

我的图像位于 public folder/img

switch ($document->ext) {

    case 'doc':
        $img = File::get(url('/img/doc.png'));
        break;

    case 'docx':
        $img = File::get(asset('/img/docx.jpg'));
        break;

    case 'pdf':
        $img = File::get(public_path('/img/pdf.png'));
        break;

    case 'ppt':
        $img = File::get(url(public_path('/img/ppt.png')));
        break;

    default:
}
return new Response($img, 200);

在文件夹名称前添加public

$img = File::get(url('public/img/doc.png'));

如果我们更改 public_path

,我想这是更好的方法
        case 'doc':
        return response()->file(public_path('img/doc.png'));
        exit;

使用此选项从 public 文件夹 下载 文件,并可选择 设置名称

public function downloadSample(){
        return Response::download(public_path("folder/my_file.xlsx"),
                     'your_file_name_when_downloaded.xslx');
    }