Я пытаюсь позвонить из моего приложения Laravel в API Bullhorn, чтобы преобразовать документ в HTML, но похоже, что файл не прикреплен к вызову.Ниже приведен мой код:
$data = curl_file_create("full/path/to/file.docx", 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'testcv');
$ch = curl_init();
curl_setopt($ch, CURLINFO_HEADER_OUT, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
$response = curl_exec($ch);
Однако я получаю следующую ошибку 500:
Загружен неверный файл: запрос не содержит multipart / form-data или multipart /смешанный поток, заголовок типа контента является application / x-www-form-urlencoded
Когда я пытаюсь установить Content-Type
явно:
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: multipart/form-data'
));
Я все еще получаю 500ошибка, немного отличающаяся:
Загружен неверный файл: запрос был отклонен, так как не было найдено многокомпонентной границы
Не думаю, что это проблема с API Bullhornпотому что выполнение следующего вызова через командную строку работает нормально:
curl -X POST "https://restXXX.bullhornstaffing.com/rest-services/{corptoken}/resume/convertToHtml?format=docx&BhRestToken={bhRestToken}" -F "file=@full\path\to\file.docx"
Я предполагаю, что по какой-то причине файл не присоединяется в моем вызове PHP, но я не могу понять, почему.
Любая помощь будет принята с благодарностью.