Есть такой код. Он отправляет сообщение, а за ним сразу файл. Файл приходит с измененным названием на подобии phpkD95Sw и при этом в формате txt, какого бы формата файл я не загрузил в форму, придет txt. Почему? Как от этого избавиться?
<?php
function sendFileTelegram($fileTempName, $name, $email, $message) {
$token = "5347735014:AAFRP0TxxkSzJXhe2kL74Pcl8jUdS9*****";
$chat_id = "-74360****";
$txt = '';
$arr = array(
"Имя пользователя: " => $name,
"email: " => $email,
"Сообщение: " => $message
);
$urlSite = "https://api.telegram.org/bot{$token}/sendDocument";
$document = new CURLFile(realpath($fileTempName));
foreach($arr as $key => $value) {
$txt .= "<b>".$key."</b> ".$value."%0A";
};
$sendToTelegram = fopen("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$txt}","r");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $urlSite);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, ["chat_id" => $chat_id, "document" => $document]);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Content-Type:multipart/form-data"]);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$out = curl_exec($ch);
curl_close($ch);
if ($sendToTelegram) {
header('Location: thank-you.html');
} else {
echo "Error";
}
}
sendFileTelegram($_FILES["telegram__file"]["tmp_name"], $_POST["name"], $_POST["email"], $_POST["message"]);
?>