显示来自Laravel控制器的图像

Mad*_*ing 5 php laravel-5

想问问是否有人曾尝试从Laravel控制器显示图像。下面是我的Laravel控制器代码。因此,基本上我只想隐藏图像的实际URL并添加其他验证,因此我决定将该图像称为我的laravel URL。

刀片代码调用laravel控制器

<img src="/image/1">
Run Code Online (Sandbox Code Playgroud)

路线

Route::get('/image/{image_id}', ['as' => 'site.viewImage', 'uses' => 'ImageController@viewImage']);
Run Code Online (Sandbox Code Playgroud)

控制者

public function viewImage($image_id)
{
    return Storage::get($image_id . '.png');
}
Run Code Online (Sandbox Code Playgroud)

但这会返回未找到的错误。我在这里做错什么了吗?注意:我将其传递给控制器​​,因为我需要进行额外的验证并混淆文件的实际网址

我尝试了这段代码及其工作方式,但我想使用laravel方法

header("Content-type: image/png");
echo Storage::get($image_id .'.png');exit;
Run Code Online (Sandbox Code Playgroud)

我也尝试过这种方法

$response = response()->make(Storage::get($image_id . '.png'), 200);
$response->header("Content-Type", 'image/png');
return $response;
Run Code Online (Sandbox Code Playgroud)

laravel方法会引发404错误。

Ind*_*ndy 8

你有没有尝试过

return response()->file($filePath);
Run Code Online (Sandbox Code Playgroud)

参见:https : //laravel.com/docs/5.3/responses#file-responses

  • 没有回答原来的问题。 (2认同)