SalesForce REST API PHP, не может видеть загруженное вложение

Я пытаюсь загрузить вложения в конкретный случай, используя REST API, который я успешно завершил.

файлы загружаются в этот конкретный случай. и я использую base64_encode для отправки двоичных данных в SalesForce, поскольку они требуют отправки двоичных данных.

но проблема в том, что когда я вижу файлы в панели управления отделом продаж,
все файлы перечислены там, и их размер правильный, имя правильное и т. д.
но когда я просматриваю / загружаю любой файл, загруженный со скриптом, он не открывается. файл показывает ошибку.
то есть. Когда я загружаю изображение в формате png с помощью оставшегося API, я не смогу открыть изображение после загрузки с панели управления отделом продаж.

Может ли кто-нибудь помочь, пожалуйста?
Я думаю, что отдел продаж может не декодировать загруженные файлы обратно из base64_encode, верно?

заранее спасибо

вот код

$fp = fopen($file, 'r');
$db_img = fread($fp, filesize($file));
$db_img = addslashes($db_img);
$db_img = base64_encode($db_img);

а затем после кодирования я объединяю $ db_img в элементе body, как это

...................

...». $ Db_img .'...

.................;

0

Решение

Я понял это сам. Я думал, что я должен опубликовать ответ, а также. Я использую следующую функцию для добавления вложений в объект Case.

Нет необходимости конвертировать в base64 вообще

public function add_attachment($case_id, $full_file_path, $file_name) {
$url = $this->instance_url."/services/data/v33.0/chatter/feed-elements";

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");$headers = array();
$headers[] = "Authorization: OAuth $this->access_token";
$headers[] = 'Content-Type: multipart/form-data; boundary=a7V4kRcFA8E79pivMuV2tukQ85cmNKeoEgJgq';

$post_text = '--a7V4kRcFA8E79pivMuV2tukQ85cmNKeoEgJgq
Content-Disposition: form-data; name="json"Content-Type: application/json; charset=UTF-8

{
"body":{
"messageSegments":[
{
"type":"Text",
"text":"Task Attachment"}
]
},
"capabilities":{
"content":{
"description":"Task Attachment",
"title":"'.$file_name.'"}
},
"feedElementType":"FeedItem",
"subjectId":"'.$case_id.'"}

--a7V4kRcFA8E79pivMuV2tukQ85cmNKeoEgJgq
Content-Disposition: form-data; name="feedElementFileUpload"; filename="'.$file_name.'"Content-Type: image/png

'. file_get_contents($full_file_path).'

--a7V4kRcFA8E79pivMuV2tukQ85cmNKeoEgJgq--';

curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_text);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLINFO_HEADER_OUT, true);

$response_json = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_HTTP_CODE);
//print_r($info);

if ( $status != 201 ) {
$this->errors[] = "Error: call to URL $url failed with status $status, response $json_response, curl_error " . curl_error($curl) . ", curl_errno " . curl_errno($curl);
return FALSE;
}
$this->status = $status;
$this->curl_error = curl_error($curl);
$this->curl_errno = curl_errno($curl);
return  json_decode($response_json,TRUE);

}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]