我在Laravel应用程序中添加了一个上传表单,文件上传并保存,但当我尝试显示它时,我得到joew:1 Not allowed to load local resource: file:///C:/xampp/htdocs/socialNet/public/uploads/joew.png
这是我放在filesystems.php文件中的根
'public' => [
'driver' => 'local',
'root' => storage_path('public/uploads'),
'visibility' => 'public',
],
因此照片被保存在存储文件夹中名为public的文件夹中。
这是检索文件的功能
public function getUserAvatar()
{
if ($this->username) {
$userAvatar = User::where('username', $this->username)->value('avatar');
return "{$userAvatar}";
}
if (!$user) {
abort(404);
}
}
,这是它保存在数据库中的格式。
C:\xampp\htdocs\socialNet\public\uploads\joew.png
答案 0 :(得分:4)
您的浏览器不允许直接从您的硬盘加载该文件。在你看来,你可能会得到这样的东西:
<img src="C:\xampp\htdocs\socialNet\public\uploads\joew.png" />
您需要浏览器的URL才能访问此图片。在您看来,您需要以下内容:
<img src="{{ asset('uploads/joew.png') }}" />
Laravel的asset()
函数从public
文件夹创建一个URL,并附加您提供的参数。所以这将创建一个URL,如:
http://localhost/public/uploads/joew.png
编辑:您指定的文件夹(storage_path)可能根本不可读取。将上传内容更改为public_path('uploads')
,即可访问。