我正在通过Web服务通过另一个应用程序的API发送表单数据,但我的附件未发送。其他所有字段均已正确发送,但文件未正确发送。
我正在使用的PHP是7.2.15。
我已经通过Postman测试了API,并且文件已正确上传,所以问题出在我的PHP代码中,而不是API中。
function postar_ideia(){
require_once "gettoken.php";
$token = gerar_token();
$titulo = $_POST["titulo"];
$descricao = $_POST["descricao"];
$campo_customizado1 = $_POST["EAB9C5B6-4752-11E9-A306-0A720A822D3C"];
$select = $_POST["958C42AA-4754-11E9-A306-0A720A822D3C"];
//$anexo = $_FILES['anexo']['name'];
//$cfile = new CURLFile($anexo,'image/jpeg','test_name');
$data = array("title" => $titulo, "description" => $descricao, "EAB9C5B6-4752-11E9-A306-0A720A822D3C" => $campo_customizado1, "958C42AA-4754-11E9-A306-0A720A822D3C" => $select, "Attachment" => $_FILES['anexo']['name'], "campaign_id" => "5463EE0A-15A3-11E9-A30C-0A720A822D3C", "category_id" => "54FEA1B2-15A3-11E9-A30C-0A720A822D3C");
//$data_string = json_encode($data);
$url = 'https://simplez.brightidea.com/api3/idea';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Authorization: Bearer '.$token,
'Content-Type: multipart/form-data'
//'Content-Length: ' . strlen($data_string))
));
//echo $data_string;
$result = curl_exec($ch);
//$jsonData = json_decode($result, true);
//echo var_dump($cfile);
//echo var_dump($data);
//print_r($_FILES);
//echo $jsonData["access_token"];
return $result;
curl_close($ch);
}
重复的建议是一个问题,询问如何在shell中而不是在PHP中进行操作。 那里有一个答案,显示了一些PHP代码,但没有以某种形式获取数据。 (或者至少我没有看到)。
我对PHP真的很陌生,因此如果可以从重复的代码中使用某些东西,我不会理解,欢迎提供解释。谢谢。