Сориентируйте пожалуйста, каким образом использовать save_data_file для загрузки файла из окна доп. действия в поле вновь созданной записи в подтаблице.
То есть задача доп. действия:
1. Создать запись в подтаблице;
2. Записать в поле (тип-файл) соответствующий файл, загруженный в окне доп. действия.
Загрузка файла через окно доп. действия в созданную запись подтаблицы
Автор NeChestniy, 11 сент. 2019 16:50
В теме одно сообщение
#1
Отправлено 11 Сентябрь 2019 - 16:50
#2
Отправлено 01 Ноябрь 2019 - 16:32
Доп действие в таблице обращений создает запись в подтаблице переписка.
Сохраняет приложенный файл, если таковой имеется.
Выполняется во всплывающем окне
Сохраняет приложенный файл, если таковой имеется.
Выполняется во всплывающем окне
$user_id = $user['id'];
$group_id = $user['group_id'];
$request_id = $line['ID'];
$request_theme = $line['Тема обращения'];
$request_number = $line['Заявка'];
$company_id = $line['Организация']['ID'];
$company_name = $line['Организация']['Название'];
$autor_id = $line['Кто добавил'];
$managers = $line['Ответственный'];//Множественный
$client_id = $line['Организация']['ID'];
$client_login_id = $line['Организация']['Логин'];
/***********Определим цветовую схему****************/
$sqlQuery1 = "SELECT `color1`,`color2`,`color3` FROM `".SCHEMES_TABLE."` WHERE `active`='1'";
$result = sql_query($sqlQuery1) or user_error(mysql_error()."<br>".$sqlQuery1."<br>", E_USER_ERROR);
$row = sql_fetch_assoc($result);
$color1 = $row['color1'];
$color2 = $row['color2'];
$color3 = $row['color3'];
/**************Автор**********/
$sql_autor = "
SELECT `fio` FROM `".USERS_TABLE."`
WHERE `id` = ".$autor_id."
";
$res_autor = sql_query($sql_autor);
while ($row_autor=sql_fetch_assoc($res_autor))
$autor_name = $row_autor['fio'];
if($_REQUEST['save']==1) //Сохраняем
{
$attach_files = Array();
$file_path= $_SERVER['DOCUMENT_ROOT']."/cb/temp/";
/********Проверим, а нет ли вложений*********************/
if($_FILES['UserFile']['tmp_name'])
{
//$attach_files = Array();
if (@!copy($_FILES['UserFile']['tmp_name'], $file_path.$_FILES["UserFile"]["name"]))
{
$error_upload = "<h4><font color=red>Error. Ошибка! Не удалось загрузить файл на сервер!</font></h4>".$file_path.$_FILES["UserFile"]["name"]; //exit;
echo $error_upload;
exit;
}
else
{
$tmp_name = $_FILES["UserFile"]["name"];
$save_file_content = file_get_contents($file_path.$tmp_name);//Если файл писать в базу
$save_file_name = $tmp_name;//Имя записываемого файла
$one_attach['name'] = $tmp_name;
$one_attach['disp'] = "attachment";
$one_attach['type'] = get_file_type($tmp_name);
$one_attach['content'] = file_get_contents($file_path.$tmp_name);
//display_notification($one_attach['content'], $type=1);
//echo $one_attach['content'];
if(!empty($one_attach['content']))
$attach_files[] = $one_attach;
unlink($file_path.$tmp_name);
}
}
//$request_id
$answer_txt = $_REQUEST['answer'];
$answer_arr = array(
'f14480'=>$request_id, //Заявка
'f14510'=>$user_id, //Отвечает
'f14520'=>date("Y-m-d H:i:s"), //Дата
'f14490'=>$answer_txt //Сообщение
//'f14500'=>$tmp_name
//''=>
//''=>
//''=>
);
$new_answ = data_insert(590,EVENTS_ENABLE,$answer_arr);
if(($new_answ)&&(count($attach_files)))
{
$fn = $attach_files[0]['name'];
data_update(590,array('f14500'=>$fn),"id=".$new_answ);
$f_content = $attach_files[0]['content'];
save_data_file(14500, $new_answ, $fn, $f_content);
}
$subject = 'Новое сообщение по заявке №'.$request_number;
$content = $answer_txt."<br><br>\r\n\r\n".' <a href=https://adress.ru/cb/view_line2.php?table=590&line='.$new_answ.' target=_blank>Перейти</a>';;
if($group_id != 777) //Не клиент
{
//Пошлем письмо клиенту
$sql_client = "
SELECT `e_mail` FROM `".USERS_TABLE."`
WHERE `id` = ".$client_login_id ."
";
$res_client = sql_query($sql_client);
while ($row_client=sql_fetch_assoc($res_client))
$client_mail = $row_client['e_mail'];
if($client_mail)
{
//display_notification('<br>TEST<br>'.$client_mail , $type=1);
sendmail($subject,$content,$client_mail,"","","","text/html","utf-8",array(), $attach_files);
}
}
else//Пишет клиент
{
/***Найдем ответственных******/
$managers_arr_tmp = explode('-',$managers);
foreach($managers_arr_tmp as $val)
{
if($val > 0)
$managers_arr[] = intval($val);
}
$managers_str = implode(',',$managers_arr);
$sql_manag = "
SELECT `id`,`fio`,`e_mail` FROM `".USERS_TABLE."`
WHERE `id` IN(".$managers_str.")
";
$res_manag = sql_query($sql_manag) or user_error(mysql_error()."<br>".$sql_manag."<br>", E_USER_ERROR);
while($row_manag=sql_fetch_assoc($res_manag))
{
$manager_mail = trim($row_manag['e_mail']);
if($manager_mail)
{
sendmail($subject,$content,$manager_mail,"","","","text/html","utf-8",array(), $attach_files);
}
}
}
echo "<script>window.opener.location.reload();window.close();</script>";
}
else
{
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Написать сообщение</title>
<!--
<script type="text/javascript" src="/include/js/find.js"></script>
<script type="text/javascript" src="/include/js/kp_new.js"></script>
<script type="text/javascript" src="/modules/public/transfer/transfer_pos.js"></script>
-->
<script type="text/javascript">
function getObj(objID)
{
if (document.getElementById) {return document.getElementById(objID);}
else if (document.all) {return document.all[objID];}
else if (document.layers) {return document.layers[objID];}
}
</script>
<style>
BODY {
font-family:areal,tahoma,verdana;
font-weight:normal;
font-size: 12px;
}
table {
font-size: 12px;
}
.link {
text-decoration: underline;
color: #0075CE;
}
</style>
</head>
<body>
<div style="background-color:#FFFFFF;width:1000px;margin:0 auto;" align=center>
<form name=answer_form id=answer_form action="" method="post" enctype=multipart/form-data>
<!--<div style="width:940px;height:100px;background-color:<?php echo $color2; ?>;">-->
<table width="90%" cellspacing="3" cellpadding = "5">
<tr>
<td width="20%" bgcolor=<?php echo $color2; ?> style="color:white;font-weight:bold;text-align:right;">
Обращение №:
</td>
<td bgcolor=<?php echo $color3; ?>>
<?php echo $request_number; ?>
</td>
</tr>
<tr>
<td width="20%" bgcolor=<?php echo $color2; ?> style="color:white;font-weight:bold;text-align:right;">
Организация:
</td>
<td bgcolor=<?php echo $color3; ?>>
<?php echo $company_name; ?>
</td>
</tr>
<tr>
<td width="20%" bgcolor=<?php echo $color2; ?> style="color:white;font-weight:bold;text-align:right;">
Тема обращения:
</td>
<td bgcolor=<?php echo $color3; ?>>
<?php echo $request_theme; ?>
</td>
</tr>
<tr>
<td width="20%" bgcolor=<?php echo $color2; ?> style="color:white;font-weight:bold;text-align:right;">
Автор обращения:
</td>
<td bgcolor=<?php echo $color3; ?>>
<?php echo $autor_name; ?>
</td>
</tr>
</table>
<h4>Написать сообщение.</h4>
<textarea name=answer id=answer cols=126 rows=20></textarea>
<table width="90%" cellspacing="3" cellpadding = "5">
<!--<tr>
<td width="10%">
</td>
<td width="70%">
</td>
<td width="10%">
</td>
<td width="10%">
</td>
</tr>
<tr>
<td width="10%">
</td>
<td width="70%" align=right>
</td>
<td width="10%">
</td>
<td width="10%">
</td>
</tr>-->
<tr>
<td width="10%">
<?php
if($group_id !=777)
{
?>
<input type=button id=quest value="Типовые ответы" onClick="window.open('modules/public/questions.php','newwin','status=1,resizable=1,width=1080,height=550'); ">
<?php
}
?>
</td>
<td width="70%" align=right>
<input type="FILE" name="UserFile">
<input type=hidden name=send value="1">
</td>
<td width="10%">
<input type=button id=cancel value="Отменить" onClick="window.close();">
</td>
<td width="10%">
<input type=submit id=save value="Сохранить">
</td>
</tr>
<tr>
<td colspan=4>
Примечание:
</td>
</tr>
<tr>
<td colspan=4>
<font color=red><i>Прикрепить можно один файл. Если нужно отправить несколько файлов, создайте один архивный файл (ZIP или RAR) со всеми вложениями.</i></font>
</td>
</tr>
</table>
</div>
<input type=hidden name=save id=save value=1>
<input type=hidden name=csrf value="<?php echo $csrf; ?>">
</form>
</body>
}
Сообщение отредактировал maksn: 01 Ноябрь 2019 - 16:37
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных












