Здравствуйте. У меня проблема следующая.
Использую API Facebook, загружаю картинку методом fileToUpload($linkToFile), вобще этот метод должен закрывать файл после загрузки, но почему-то когда я пытаюсь использовать далее unlink($linkToFile) этого файла вываливается ошибка permission denied. Ошибка вываливается только если я использую этот метод.
Метод не возвращает ресурс файла, поэтому я не могу его закрыть.
Возможно ли как-то получить все-таки ресурс этого файла, закрыть его, а после удалить?
Заранее благодарен всем отозвавшимся.
private function grabImage($url,$saveto) {
$ch = curl_init ($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
$raw = curl_exec($ch);
curl_close ($ch);
if(file_exists($saveto)){
unlink($saveto);
}
$fp = fopen($saveto,'w+');
fwrite($fp, $raw);
fclose($fp);
}
public function addPostFB($post) {
$fb = $this->fb;
//Загружаем требуемое изображение к себе на сервер
$remoteFile = $post['image'];
$nameFile = explode('/', $remoteFile);
$localFile = __DIR__."/images/".array_pop($nameFile);
$this->grabImage($remoteFile, $localFile);
$fb->setDefaultAccessToken(TOKEN_FB);
$file = $fb->fileToUpload($localFile);
$data = [
'message' => $post['text'],
'source' => $file,
];
$batch = [
'photo' => $fb->request('POST', "/".ID_PUBLIC_FB."/photos", $data),
];
$responses = $fb->sendBatchRequest($batch);
unlink($localFile);
}