不允许使用Laravel加载本地资源

时间:2016-05-24 13:30:46

标签: php laravel laravel-5.2

我在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

1 个答案:

答案 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'),即可访问。