我在社交网站上使用Laravel 5.2。我能够提取用户的详细信息,但问题是,如果我将其注入src
,则无法正确显示头像。
社交名称返回一个对象,我可以将其用作$facebookDetails->getAvatar()
,其中返回的值类似于此https://graph.facebook.com/v2.6/123456789/picture?type=normal
如果我在图像src
中回显此值,它将看起来像这样。
<img src="https://graph.facebook.com/v2.6/123456789/picture?type=normal" />
这似乎不是图像的实际网址,因为当我在浏览器上输入它时,它会将我重定向到&#34;实际&#34;图像并显示图像。
如何在img
标签上显示图像以显示实际图像?
答案 0 :(得分:8)
只需使用file_get_contents
函数获取数据并处理检索到的数据。
在控制器
中use File;
$fileContents = file_get_contents($user->getAvatar());
File::put(public_path() . '/uploads/profile/' . $user->getId() . ".jpg", $fileContents);
//To show picture
$picture = public_path('uploads/profile/' . $user->getId() . ".jpg");
答案 1 :(得分:1)
我正在使用以下代码:
/**
* In order to save the user's avatar
* REMEMBER TO ADD "use File; use Illuminate\Support\Carbon; use DB;" TO TOP!
* @param $avatar Socialite user's avatar ($user->getAvatar())
* @param $userId User's id database
*/
public function saveImageAvatar($avatar, $userId)
{
$fileContents = file_get_contents($avatar);
$path = public_path() . '/users/images/' . $userId . "_avatar.jpg";
File::put($path, $fileContents);
DB::table('Images')->insert(
['path' => $path,
'nome' => 'avatar',
'users_id' => $userId,
'created_at' => Carbon::now()->format('Y-m-d H:i:s'),
'updated_at' => Carbon::now()->format('Y-m-d H:i:s')]);
}