У меня проблемы с загрузкой файлов с использованием CURL с PHP (в Windows - если это имеет значение).
По сути, я могу публиковать на URL и отображать то, что было опубликовано, за исключением поля с файлом.В этом случае я тестирую код, который указывает на тот же сервер, но как только я смогу подтвердить, что файл загружен, я отправлю его в другой домен (опять же, если это имеет значение).
Вот начало.php
$curl_handle=curl_init();
curl_setopt($curl_handle,CURLOPT_USERPWD, "user:pass");
curl_setopt($curl_handle,CURLOPT_URL, "http://domain/upload.php");
curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl_handle,CURLOPT_POST, 1);
$post = array("boo"=>"yaaah",
"xml"=>"@e:/path/to/file/new.xml");
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $post);
$buffer = curl_exec($curl_handle);
curl_close($curl_handle);
Затем upload.php
print_r($_POST);
Результат вызова CURL, вывод $ buffer:
array(1) { ["boo"]=> string(5) "yaaah" }
Edit # 1
Вместо этого я сделал print_r ($ _ FILES) и получил это:
array(1) { ["xml"]=> array(5) { ["name"]=> string(7) "new.xml" ["type"]=> string(24) "application/octet-stream" ["tmp_name"]=> string(26) "C:\WINDOWS\TEMP\php892.tmp" ["error"]=> int(0) ["size"]=> int(3733) } }
Это доказывает, что мой файл загружается.Почему API не получает доступа к нему, к которому я пытаюсь получить доступ, это вопрос, на который они должны ответить:)