使用curl通过表单上传文件

时间:2019-03-29 18:05:02

标签: php curl

我正在通过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真的很陌生,因此如果可以从重复的代码中使用某些东西,我不会理解,欢迎提供解释。谢谢。

0 个答案:

没有答案