Загрузить удаленную фотографию для загрузки - PullRequest
2 голосов
/ 19 августа 2011

Можно ли загрузить удаленное изображение в Facebook, используя PHP-библиотеку Facebook ??

Вместо использования

    $facebook->setFileUploadSupport(true);
    $args = array('message' => 'My Caption');
    $args['image'] = '@' . realpath($file);

    $data = $facebook->api('/me/photos', 'post', $args);

Вместо realpath ($ file) Я хотел бы использовать удаленный путь к изображению, например:

http://myserver.com/image.jpg

Я попытался заменить realpath ($ file) ссылкой http, но я получил следующееошибка:

 Uncaught CurlException: 26: couldn't open file "http://mydomain.com/fb_images/EwrTsUqEuG.jpg"

1 Ответ

3 голосов
/ 19 августа 2011

Используйте file_get_contents () , чтобы загрузить файл на ваш сервер, затем file_put_contents () , чтобы сохранить его во временном локальном файле для процесса передачи загрузки FB, затем unlink () для последующего удаления файла.

<?php

# The URL for the Image to Transfer
$imageURL = 'http://server.com/the_image.jpg';
# Folder for Temporary Files
$tempFilename = $_SERVER['DOCUMENT_ROOT'].'/tempFiles/';

# Unique Filename
$tempFilename .= uniqid().'_'.basename( $imageURL );

# Get the Image
if( $imgContent = @file_get_contents( $imageURL ) ){
  if( @file_put_contents( $tempFilename , $imgContent ) ){

    $facebook->setFileUploadSupport(true);
    $args = array('message' => 'My Caption');
    $args['image'] = '@' . realpath( $tempFilename );

    $data = $facebook->api('/me/photos', 'post', $args);

    # Once done, delete the Temporary File
    unlink( $tempFilename );

  }else{
    # Failed to Save Image
  }
}else{
  # Failed to Get Image
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...