PHP 中的 cURL 上传到 Hubspot /“找不到文件”
cURL upload in PHP to Hubspot / “no file found”
我尝试使用 PHP 将 .pdf 文件从我的个人 CRM 上传到 Hubspot 根文件夹:
$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";
还是一样的错误
这段代码有什么问题?
谢谢。
您可以使用 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();
...
我尝试使用 PHP 将 .pdf 文件从我的个人 CRM 上传到 Hubspot 根文件夹:
$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";
还是一样的错误
这段代码有什么问题?
谢谢。
您可以使用 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();
...