将图片从另一个域名url上传到我的服务器

upload image from another domain url to my server

本文关键字:我的 服务器 url 域名 另一个      更新时间:2023-09-26

我正在运行angularjs和laravel,并计划将facebook上的用户配置文件上传到我的服务器上,并将其加载到画布上。

因为画布在加载其他域时存在CORS问题,同时将其更改为dataUrl

那么,在fb域上获取图像的url并上传到我的服务器

之后,在facebook上获取图像数据的最佳方式是什么

首先必须从API获取配置文件图片的URL。为此,您必须向http://graph.facebook.com/v2.5/me?fields=picture请求,并提供您的访问令牌。

它将返回类似以下内容:

{
  "picture": {
    "data": {
      "is_silhouette": false,
      "url": "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xpt1/v/t1.0-1/p50x50/picture.jpg"
    }
  },
  "id": "10000userid"
}

所以你必须只得到有趣的部分:

// requesting
$get = file_get_contents('http://graph.facebook.com/v2.5/me?fields=picture&access_token=YOUR_ACCESS_TOKEN_HERE');
// parsing
$get = json_decode($get);
// getting the part you want
$picture_url = $get->picture->data->url;

从Facebook API获取图像URL后,您只需:

// download it
$download = file_get_contents($picture_url);
// get extension (I'm not sure if Facebook really converts everything to JPEG, I'm not a huge Facebook user)
$extension = strtolower(end(explode(".", $download)));
// save it on your server
file_put_contents('path/to/save.'.$extension, $download);
$url = 'https://yourimageurl.com/test.png';
$img = 'foo.png';
file_put_contents($img, file_get_contents($url));