@rusgayfer

Почему пустой запрос в поле photo?

Не загружает фото на сервер вк, так как путь не правильный

// Функция вызова API
	function by($method, $array = false) {
		$response = curl("https://api.vk.com/method/".$method, $array);
		$json = json_decode($response, true);
		if($json["error"]["error_msg"]) {
			return $json["error"];
		} else {
			return $json["response"];
		}
	}
	
// Функция сохранения картинки на сервер	
	function download($picture = null, $group = null) {
		global $token, $group_post;
		$pic = curl_init($picture);
		$file = fopen("image.jpg", "wb");
		curl_setopt($pic, CURLOPT_FILE, $file);
		curl_setopt($pic, CURLOPT_HEADER, 0);
		curl_exec($pic);
		curl_close($pic);
		$getWallUploadServer = by("photos.getWallUploadServer", array("group_id" => $group_post, "access_token" => $token));
		$upload = curl($getWallUploadServer["upload_url"], array("file1" => "@".dirname(__FILE__)."/image.jpg"));
		$json = json_decode($upload, true);
		$saveWallPhoto = by("photos.saveWallPhoto", array("group_id" => $group_post, "photo" => $json["photo"], "hash" => $json["hash"], "server" => $json["server"], "access_token" => $token));
		return $saveWallPhoto[0]["id"];
	}
	

	function curl($url, $post = false) {
		$ch = curl_init($url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
		curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4 AlexaToolbar/alxg-3.1');
		if ($post) { 
			curl_setopt($ch, CURLOPT_POST, 1);
			curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
		}
		$response = curl_exec($ch);
		curl_close($ch);
		return $response;
	}


У этого кода путь работает так
/home/q/m95351vh/site.ru/public_html/script/tools/image.jpg


Как указать путь правильно, если у меня изображение находится по такому пути
/home/q/m95351vh/site.ru/public_html/script/image.jpg


И почему у меня пустое photo

print_r($saveWallPhoto);

(
    [error_code] => 100
    [error_msg] => One of the parameters specified was missing or invalid: photos_list is invalid
    [request_params] => Array
        (
            [0] => Array
                (
                    [key] => oauth
                    [value] => 1
                )

            [1] => Array
                (
                    [key] => method
                    [value] => photos.saveWallPhoto
                )

            [2] => Array
                (
                    [key] => group_id
                    [value] => 55555552
                )

            [3] => Array
                (
                    [key] => photo
                    [value] => []
                )

            [4] => Array
                (
                    [key] => hash
                    [value] => c5775a11191e58052774f89f3556775d
                )

            [5] => Array
                (
                    [key] => server
                    [value] => 740460
                )

        )

)
  • Вопрос задан
  • 104 просмотра
Пригласить эксперта
Ответы на вопрос 1
@vaajnur
битриксоид
$file = fopen("image.jpg", "wb");
у тебя откроет если только картинка лежит в той же дир-ии что и сам скрипт. Так лучше не указывать путь. Отталкивайся от
$_SERVER['DOCUMENT_ROOT'] . '/script/tools/image.jpg' ;

Опять таки такой путь тоже нежелателен
dirname(__FILE__)."/image.jpg"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
Бюро Цифровых Технологий Санкт-Петербург
от 120 000 до 180 000 ₽
02 мая 2024, в 14:44
500 руб./за проект
02 мая 2024, в 14:36
3000 руб./за проект
02 мая 2024, в 14:29
30000 руб./за проект