Публикация

подписчиков: 2 Подписаться
0
Avatar

Загрузка файла в доп. поле. Как?

Добрый день. В документации написано, что для загрузки файла достаточно указать его содержимое в Base64 и название.

Пробую отправить файл в дополнительное поле к заказу:

$put_data = array();
$attribute = array();

$content = base64_encode(file_get_contents('uploads/logo.png'));

$attribute['id'] = 'b8a8f6d6-5782-11e8-9ff4-34e800181bf6';
$attribute['value']['filename'] = 'logo.png';
$attribute['value']['content'] = $content;

$put_data['attributes'][] = $attribute;
$put_data['name'] = 'test-'.time();

// Далее отправляем PUT c $put_data.

Имя заказа меняется, а вот файла как не было, так и нет. Ошибку не выдаёт.

Дмитрий

Войдите в службу, чтобы оставить комментарий.

Комментариев: 5

0
Avatar

Добрый день

В этой части документации есть ссылка на пример того как надо отправлять изображение. Она заметна на вашем скрине "в секции создания товара".

В вашем случае достаточно будет поменять 

$attribute['value']

 на 

$attribute['image']
Kovalenko Stanislav 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

Для дефолтного поля «окей, нет проблем».
Но у меня именно доп. поле типа "Файл"
Там может быть любой файл: pdf, excel, doc и т.д.

Дмитрий 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

Для простого файла есть тоже пример в товарах

 

{
      "meta": {
        "href": "http://localhost:8081/api/remap/1.1/entity/product/metadata/attributes/0f1e750e-e1b2-11e7-9464-e4de00000003",
        "type": "attributemetadata",
        "mediaType": "application/json"
      },
      "id": "0f1e750e-e1b2-11e7-9464-e4de00000003",
      "name": "not strange attribute name",
      "type": "file",
      "file": {
        "name": "filename",
        "content": "5cYwMpOmNk5kSVr4YgZGKtXJb/7KpHVLDUawyZrD5Nf0WDhB7mS1I77VcAMqYQ8DkP/1wDLhb0X6b2JO4pdpKA=="
      }
    }
Kovalenko Stanislav 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

Да, это помогло, спасибо, вот только там ошибка, нужно не name, а filename:

$attribute['id'] = 'b8a8f6d6-5782-11e8-9ff4-34e800181bf6';
$attribute['file']['filename'] = 'logo.png';
$attribute['file']['content'] = base64_encode(…);
Дмитрий 0 проголосовали
Действия с комментариями Постоянная ссылка
0
Avatar

Добрый день!
Спасибо, что сообщили об ошибке в документации. Мы исправим ее в ближайшее время.

Дмитрий 0 проголосовали
Действия с комментариями Постоянная ссылка