Почему-то опущена возможность прикрепления файлов через параметр FILES (можно использовать даже вместо IMAGE).
По сути в самой функции происходит такой маппинг:
| Код |
|---|
if(is_set($arFields, "IMAGE")) $arFields["FILES"][] = $arFields["IMAGE"];
|
Соответственно, спокойно можно прикладывать к тикету любые файлы:
| Код |
|---|
CModule::IncludeModule("support");
// Основные параметры
$arFields = array(
"CREATED_MODULE_NAME" => "personal", // Указать нужный id модуля
"OWNER_USER_ID" => $userId, // id пользователя
"SOURCE_SID" => 'web',
"TITLE" => 'title',
"MESSAGE" => 'message',
"CATEGORY_SID" => $category, // id категории обращения
);
// Прикладываю файл 1
// Создаю временный файл на сервере
$screenTmp = tempnam(sys_get_temp_dir(), 'TMP_');
$screenSize = file_put_contents($screenTmp, $imgData); // Записываю во временный файл свою картинку, полученную через ajax (картинка)
if ($screenSize) {
$arFields["FILES"][] = array(
"name" => "Скриншот экрана с ошибкой.png",
"type" => "image/png",
"tmp_name" => $screenTmp, // путь к файлу на сервере
"error" => 0,
"size" => $screenSize // размер файла
);
}
// Создаю временный файл с диагностической информацией
$debugTmp = tempnam(sys_get_temp_dir(), 'TMP_');
$debugSize = file_put_contents($debugTmp, $diagMsg); // Записываю в файл диагностическую информацию (html файл)
// Прикладываю файл 2
if ($debugSize) {
$arFields["FILES"][] = array(
"name" => "Диагностическая информация рабочего места.html",
"tmp_name" => $debugTmp, // путь к файлу на сервере
"error" => 0,
"size" => $debugSize // размер файла
);
}
|