想问问是否有人曾尝试从Laravel控制器显示图像。下面是我的Laravel控制器代码。因此,基本上我只想隐藏图像的实际URL并添加其他验证,因此我决定将该图像称为我的laravel URL。
<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错误。
你有没有尝试过
return response()->file($filePath);
Run Code Online (Sandbox Code Playgroud)
参见:https : //laravel.com/docs/5.3/responses#file-responses