Генерация файла (шаблон) и его сохранение в базе
#1
Отправлено 24 Июнь 2017 - 14:27
1. Необходимо вычислением распечатать файл (шаблон печати) и его результат (pdf файл) сохранить в поле типа Файл. Натолкните на мысли, как это сделать?
2. Как скопировать файл из поля одной таблицы в поле другой таблицы? Я ранее пытался решить эту задачу, но что-то пошло не так. Есть у кого готовое решение или идеи?
#2
Отправлено 24 Июнь 2017 - 15:42
plotnikov (24 Июнь 2017 - 14:27) писал:
1. Необходимо вычислением распечатать файл (шаблон печати) и его результат (pdf файл) сохранить в поле типа Файл. Натолкните на мысли, как это сделать?
2. Как скопировать файл из поля одной таблицы в поле другой таблицы? Я ранее пытался решить эту задачу, но что-то пошло не так. Есть у кого готовое решение или идеи?
Ну, как то так
$body_html = ""; /**********Получим данные по той записи, которую нужно распечатать из таблицы с ID=XXXX***************/ $line_record = data_select_array(XXXX, "`id`=".$line['id']); /*************Начитаем шаблон. Предположим, что его ID=111**************/ $form = sql_select_array(FORMS_TABLE, "id=111"); $body_html = form_template($form, $line_record, 'body_form'); include($_SERVER['DOCUMENT_ROOT']."/include/mpdf/mpdf.php"); $mpdf = new mPDF('utf-8', 'A4', '8', '', 10, 10, 7, 7, 10, 10); ///задаем формат, отступы и.т.д. $mpdf->charset_in = 'utf-8'; $mpdf->WriteHTML($body_html); $PDF_file_str = $mpdf->Output('', 'S'); //Получим строку с PDF //Если нужно вывести на монитор для печати, то //$PDF_file = $mpdf->Output('', 'I'); //Вывод в браузер /****************Запишем в нужное поле нужной таблицы************/ $file_name = 'НУЖНОЕ ИМЯ.pdf'; $need_field_id = 123;// где 123 - ID поля, куда пишем файл $need_line_id = $line['id']; //ID записи, куда пишем файл save_data_file($need_field_id,$need_line_id,$file_name,$PDF_file_str); /********Теперь уже не помню - нужно или нет делать прямую запись имени файла. Если нужно, то код ниже*********/ $line['Имя поля с файлом'] = $file_name;Что касается копирования из одного поля одной таблицы в другую таблицу, то....
Сначала получите строковое значение нужного файла с помощью get_file_content() и get_file_path()
Затем запишите его с помощью save_data_file См. код выше
Сообщение отредактировал maksn: 24 Июнь 2017 - 15:48
#3
Отправлено 24 Июнь 2017 - 16:15
get_file_content() и get_file_path()а где-то подробнее про эти функции можно почитать?
Сообщение отредактировал plotnikov: 24 Июнь 2017 - 16:16
#4
Отправлено 24 Июнь 2017 - 16:56
plotnikov (24 Июнь 2017 - 16:15) писал:
get_file_content() и get_file_path()а где-то подробнее про эти функции можно почитать?
Чтобы прочитать файл из нужной записи нужной таблицы,
// XYZ - это ID поля, где храниться файл //$line_id - ID той записи, откуда берем файд //$file_name - собственно, имя файла, записаного в поле $file_str = file_get_contents(get_file_path(XYZ, $line_id, $file_name));Функция get_file_path() описана в functions1.php, помоему. Это функция КБ. Читает реальный путь к файлу по ID поля, ID записи и имени файла.
file_get_contents - стандартная PHP функция. Читает содержимое файла
Переменную $file_str пишем туда, куда нужно с помощью save_data_file
Сообщение отредактировал maksn: 24 Июнь 2017 - 17:15
#5
Отправлено 24 Июнь 2017 - 19:33
file_get_contents - выключена на SaaS версии КБ... cURL как альтернатива.
Еще раз спасибо, буду пробовать.
Сообщение отредактировал plotnikov: 24 Июнь 2017 - 19:36
#6
Отправлено 24 Июнь 2017 - 21:24
plotnikov (24 Июнь 2017 - 19:33) писал:
file_get_contents - выключена на SaaS версии КБ... cURL как альтернатива.
Еще раз спасибо, буду пробовать.
Вы же из таблиц КБ будете читать, а не со сторонних ресурсов
#7
Отправлено 27 Июнь 2017 - 12:36
Цитата
Не путайте чтение по локальному пути (работает всегда) и чтение удаленных файлов по http/ftp/... - вот это зависит от настроек сервера и поэтому не рекомендуется делать через file_get_contents.
#8
Отправлено 30 Июнь 2017 - 07:08
#9
Отправлено 28 Июль 2017 - 10:37
#10
Отправлено 28 Июль 2017 - 21:50
Dinak (28 Июль 2017 - 10:37) писал:
Если нужно, то добавьте
$header_html = form_template($form, $line_record, 'head_form');
$footer_html = form_template($form, $line_record, 'foot_form');
#11
Отправлено 29 Август 2018 - 23:47
ошибка:
Uncaught Error: Class 'mPDF' not found in /var/www/html/clientbase/include/functions1.php(633) : eval()'d code:8 Stack trace: #0 /var/www/html/clientbase/include/functions1.php(633): eval() #1 /var/www/html/clientbase/user_button.php(74): calc_line(Array, Array, Array, Array) #2 {main} thrown
версия локальная 2.11 debian php7.0
проблема в настройках сервера?
Количество пользователей, читающих эту тему: 3
0 пользователей, 3 гостей, 0 анонимных