Выгрузка настроек с html формы в файл
Есть задача сохранить данные формы в файл, а при желании в дальнейшим загрузить эти данные обратно в форму, или в новою форму.
Рассмотрим возможность передачи данных в обработчик и возврат файла в браузер клиенту для скачивания
Создадим форму с данными
Добавляем кнопку «Выгрузить форму»
Создадим скрипт, который получит файл от обработчика с данными нашей формы и запустит скачивание файла браузером. Для начала отправим данные на сервер.
Сериалиуем данные формы $(‘#formSettings’).serialize() и отправляем методом POST через XMLHttpRequest в обработчик settings.php
На стороне сервера в файле settings.php создадим файл settings.dat, записываем в файл данные POST
// Путь к файлу $file_dat = "settings.dat"; $r = $_POST; if ($F = fopen($file_dat, "w")) { fwrite($F, serialize($r)); fclose($F); }
сбрасываем буфер вывода PHP, чтобы не допустить переполнения памяти выделенной под скрипт, отправляем заголовки для скачивания файла браузером
if (ob_get_level()) { ob_end_clean(); } // отправляем заголовки header('Content-Description: File Transfer'); header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename=' . basename($file_dat)); header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate'); header('Pragma: public'); header('Content-Length: ' . filesize($file_dat));
Читаем файл и отправляем его пользователю
if ($fd = fopen($file_dat, 'rb')) { while (!feof($fd)) { print fread($fd, 1024); } fclose($fd); }
Файл settings.php полностью
Дальше больше) в следующим тексте о том как загрузить данные полей и выполнить вставку в форму по файлу