[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Файлы формы уходят в телеграм с Open Server, с хос
Ivan707
Всем добрый вечер!

Подскажите пожалуйста бестолковому новичку.
Отправляю содержимое формы обратной связи в группу Телеграмм. На локальном сервере Open Server все отлично работает, все уходит без пробоем.
Перенес файлы на сервер, проверяю, сообщения уходят, а прикрепленные картинки нет.
И еще, curl_error($ch) почему то не сообщает, какая произошла ошибка.
Подскажите пожалуйста, что не так с кодом.

Поле формы с выбором файлов

<div class="form-group">
<div
class="form-attach__label">Файлы</div>
<div
class="form-attach__wrapper">
<input
type="file" name="attach[]" multiple required>
<div
class="form-attach__description">
<div>
Нажмите для загрузки файлов или перетащите их</div>
</div>
<div
class="form-attach__items"></div>
</div>
</div>



Валидация и отправка.

const MIME_TYPES = ['image/jpeg', 'image/gif', 'image/png'];
const MAX_SIZE = 1024 * 1024;
define('UPLOAD_PATH', dirname(__FILE__) . '/uploads/');

$data = [
'errors' => [],
'form' => [],
'logs' => [],
'result' => 'success',
'telegramm' => 'success'
];

$attachs = [];

// валидация прикреплённых файлов
if (empty($_FILES['attach'])) {
foreach ($_FILES['attach']['error'] as $key => $error) {
if ($error == UPLOAD_ERR_OK) {
$name = basename($_FILES['attach']['name'][$key]);
$size = $_FILES['attach']['size'][$key];
$mtype = mime_content_type($_FILES['attach']['tmp_name'][$key]);
if (!in_array($mtype, MIME_TYPES)) {
$data['result'] = 'error';
} else if ($size > MAX_SIZE) {
$data['result'] = 'error';
}
}
}

if ($data['result'] === 'success') {
foreach ($_FILES['attach']['name'] as $key => $attach) {
$ext = mb_strtolower(pathinfo($_FILES['attach']['name'][$key], PATHINFO_EXTENSION));
$name = basename($_FILES['attach']['name'][$key], $ext);
$tmp = $_FILES['attach']['tmp_name'][$key];
$newName = rtrim($name, '.') . '_' . uniqid() . '.' . $ext;
if (!move_uploaded_file($tmp, UPLOAD_PATH . $newName)) {
$data['result'] = 'error';
$data['errors']['attach'][$key] = 'Ошибка при загрузке файла.';
} else {
$attachs[] = UPLOAD_PATH . $newName;
}
}
}
}


/*************** Отправляю Сообщение Работает *****************/
$token = "токен";
$chat_id = "chat_id";

function parser($url, &$data){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
$info = curl_getinfo($curl);
if (curl_errno($curl) || substr($info['http_code'],0,1) !== '2') {
itc_log('Ошибка при отправке в Телеграмм : ' . curl_error($curl));
return false;
}
else{
itc_log('Уведомление успешно отправлено в Телеграмм.');
return true;
}
curl_close($curl);
}

$message = '';
$message .= "<b>Новое сообщение из формы</b>\n";
$message .= "<b>Телефон: </b>" .$data['form']['phone'] ."\n";
$message .= "<b>Сообщения: </b>" .$data['form']['message'] ."\n";

$message = urlencode($message);

parser("https://api.telegram.org/bot{$token}/sendMessage?chat_id={$chat_id}&parse_mode=html&text={$message}", $data);

/*********** Отправляю картинки НЕ РАБОТАЕТ **********************/
foreach ( $attachs as $attach ) {
$url = "https://api.telegram.org/bot" . $token . "/sendDocument";
$href = str_replace($_SERVER['DOCUMENT_ROOT'], '', $attach);
$name = basename($href);
$document = new CURLFile($href, 'image/jpeg',$name);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
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);

$result = curl_exec($ch);
$info = curl_getinfo($ch);

if (curl_errno($ch) || substr($info['http_code'],0,1) !== '2') {
itc_log('Ошибка при отправке в Телеграмм картинки : ' . curl_error($ch));
} else {
itc_log('Уведомление успешно отправлено в Телеграмм картинки.');
}
curl_close($ch);
unlink($href);
}



Заранее всем спасибо
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.