Загрузка файла при добавлении материала uApi

голоса: 0

Подскажите, как загружать картинки через uApi?
В параметрах пробовал передавать просто ссылку: 
'file1' => 'image.jpg',
или

'file1' => file('image.jpg'),

Но не получается. Пробовал добавлять для модуля Новости сайта.

| Автор: | Категория: PHP и API на uCoz

Ответов: 1

голоса: 0
 
Лучший ответ

Во-первых, перед названием файла должна быть собака (@).

Во-вторых, файл должен лежать на сервере. Это не просто ссылка с потолка. Т.к. файл все равно будет загружен в файловый менеджер вашего сайта.

Вот пример. В данном примере картинка star.png лежит в той же директории, что и php файл

$file1 = '@star.png';

include 'uAPImodule.php';
$parametrs = array(
    'oauth_consumer_key' => $consumer_key,
    'oauth_nonce' => $oauth_nonce,
    'oauth_signature_method' => $sig_method,
    'oauth_timestamp' => $timestamp,
    'oauth_token' => $oauth_token,
    'oauth_version' => $oauth_version,
    'category' => '1',
    'title' => 'Название материала',
    'description' => 'Краткое описание материала',
    'message' => 'Полное описание материала',
    'file1' => $file1
);

ksort($parametrs);
$str = uAPIModule('/news', 'post', $parametrs, '');
$arr = json_decode ($str, true);

echo '<pre>';
var_dump ( $arr );
echo '</pre>';

 

| Автор:
Выбор ответа лучшим | | Автор: Yuri_Geruk

Здравствуйте. Спасибо за ответ. Я пробовал так как вы советуете. В ответ получаю вот что:

array(1) {
  ["error"]=>
  array(2) {
    ["msg"]=>
    string(17) "Invalid signature"
    ["code"]=>
    string(17) "INVALID_SIGNATURE"
  }
}

В документации написано, что это может быть из-за неправильного токена. Но если добавлять материал без файла (картинки file1), то все добавляется нормально. А значит дело не в токене.
Что скажете? В чем еще может быть проблема?

Krovex,
Покажите ваш код. Гадать бессмыслено. Но дело точно не в токенах
Александр Леонов,


Код такой как Вы мне дали:

include 'uAPImodule.php';
$file1 = '@phone.png';
$parametrs = array(
    'oauth_consumer_key' => $consumer_key,
    'oauth_nonce' => $oauth_nonce,
    'oauth_signature_method' => $sig_method,
    'oauth_timestamp' => $timestamp,
    'oauth_token' => $oauth_token,
    'oauth_version' => $oauth_version,
    'category' => '1',
    'title' => 'Название материала',
    'description' => 'Краткое описание материала',
    'message' => 'Полное описание материала',
    'file1' => $file1
);

ksort($parametrs);
$str = uAPIModule('/news', 'post', $parametrs, '');
$arr = json_decode ($str, true);

echo '<pre>';
var_dump ( $arr );
echo '</pre>';

 

Krovex,

Т.е. у вас в одной папке лежит 3 файла: картинка - phone.pnguAPImodule.php и файл php в котором находится код, что выше написан? И при этом все равно ошибка?

Александр Леонов,
Да, именно так. А если убрать параметр file1, то материал добавляется нормально.
Я вот думаю, может какой-то запрет стоит на отправку файла.
Александр Леонов,
Или же это баг uApi.
Krovex,
Только что проверил. Все работает как надо
Александр Леонов,
В настройках модуля то стоит возможность добавлять файлы (изображения)?
Александр Леонов,
Вы проверяли на своем сервере?
Krovex,
Я проверял на php от ucoz
Александр Леонов,
Я на своем сервере пробую.
Все равно, спасибо. Теперь я хоть знаю, что проблема у меня :)
Буду пробовать с другим сайтом и на другом компьютере.
Krovex,
Проверьте права у файлов. Возможно в этом проблема
...