загрузка cURL в PHP в Hubspot / «файл не найден» - PullRequest
0 голосов
/ 12 декабря 2018

Я пытался загрузить файлы .pdf из моей личной CRM в корневую папку Hubspot с помощью PHP:

$url = "http://api.hubapi.com/filemanager/api/v2/files?hapikey=".$hapikey;
$realpath = "http://localhost:8888/steps/D_201803_14122.pdf";
$headers = array("Content-Type:multipart/form-data"); 
$postfields = array("files"=>$realpath,'file_names'=>'D_201803_14122FROMPHP.pdf');
$ch = curl_init();
$options = array(
  CURLOPT_URL => $url,
  CURLOPT_HEADER => true,
  CURLOPT_POST => 1,
  CURLOPT_HTTPHEADER => $headers,
  CURLOPT_POSTFIELDS => $postfields,
  CURLOPT_RETURNTRANSFER => true
); 
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
echo $result;
if(!curl_errno($ch)) {
  $info = curl_getinfo($ch);
  if ($info['http_code'] == 200)
  $msg = "File uploaded successfully";
  echo $msg;
} else {
  $errmsg = curl_error($ch);
  echo $errmsg;
}

curl_close($ch); 

И я получаю эту ошибку:

{"status":"error","message":"no file found, please set name to 'files' or 'files[]'","correlationId":"d6ae2bcc-c26d-48db-91a9-d601cea56e7e","requestId":"5364051dc0127abf389ecf56f185f994"}

Файл PDF находится вта же папка, что и скрипт php.

Я пробовал с разными путями, такими как:

$realpath = "D_201803_14122.pdf";
$realpath = '@'."D_201803_14122.pdf";

Все та же ошибка

Что не так с этим фрагментом кода?

Спасибо.

1 Ответ

0 голосов
/ 12 декабря 2018

Вы можете добавить файлы к запросу с помощью curl_file_create ()

$ realpath должен быть локальным путем, а не URL-адресом.Что-то вроде getcwd ()."/D_201803_14122.pdf должен работать, если скрипт находится в том же каталоге, что и файл.

$url = "http://api.hubapi.com/filemanager/api/v2/files?hapikey=".$hapikey;
$realpath = getcwd() . "/D_201803_14122.pdf";
$headers = array("Content-Type:multipart/form-data"); 
$postfields = array("files"=>curl_file_create($realpath),'file_names'=>'D_201803_14122FROMPHP.pdf');
$ch = curl_init();
...
...