【发布时间】:2019-07-16 23:38:00
【问题描述】:
我有一个 laravel 5.7 项目,我正在尝试将图像呈现给浏览器。
如果我只取文件的内容,它的工作原理如下:
$contents = Storage::disk($file->disk)->get($file->path);
$new = 'data:'.$file->mimetype.';base64,' . base64_encode($contents);
echo '<img src="'. $new .'">';
通过使用上面的代码,我可以看到图像,就像我们在带有 img 标签的 html 文件中看到的那样。但我不要这个!
我只想按照我们在浏览器中看到图像的方式来渲染图像!所以我试图附加标题类型如下:
$contents = Storage::disk($file->disk)->get($file->path);
return response($contents)
->header('Content-Type', $file->mimetype)
->header('Content-Disposition', 'inline;');
上面的代码不起作用,我得到错误“图像[url]无法显示,因为它包含错误”;
我不知道我在这里错过了什么!
我不想将这些图像文件保留在公共区域,并且 PDF 文件可以使用相同的方法正常工作。
【问题讨论】:
-
你已经运行了 php artisan storage:link 了吗?
-
@GhiffariAssamar,我已经做了 storage:link 但在我的 senario 中它不是必需的。因为我不希望他们公开!