Передача post запроса без формы и curl

aaa___bbb

Новичок
Всем добрый день. Нужно вытащить файл с локального сервера и загрузить методом Post по урлу.
Таким способом не получается. Вроде как он описан как рабочий, а по факту не работает. Нужно загрузить файл с помощью api vk, где JSON ответ вернет характеристики загруженного файла. А возвращает пустое поле.
Описание документации vk api.
Передайте файлы на адрес upload_url, полученный в предыдущем пункте, сформировав POST-запрос с полями file1-file5. Эти поля должны содержать изображения в формате multipart/form-data.
После успешной загрузки сервер возвращает в ответе JSON-объект с полями server, photos_list, hash, aid:
  1. $upload_url = "https://vk.com........"
  2. $file = file_get_contents('/test.jpg'); // путь к файлу на сервере
  3. $data = array('filename' => 'file1', 'file' => $file);
  4. $data = http_build_query($data);
  5. $context_options = array(
  6. 'http' => array(
  7. 'method' => 'POST',
  8. 'header' => array(
  9. "Content-type: multipart/form-data",
  10. "Content-Length: " . strlen($data)
  11. )
  12. ,
  13. 'content' => $data
  14. )
  15. );

  16. $context = stream_context_create($context_options);
  17. $s = file_get_contents("upload_url", false, $context);

Да и вообще, хотелось бы разобраться с таким способом передачи файла. Какие ошибки логики здесь?
 
Сверху