Files
idpan.poznan.pl/administrator/components/com_convertforms/controllers/export.php
2026-02-08 21:16:11 +01:00

85 lines
2.4 KiB
PHP

<?php
/**
* @package Convert Forms
* @version 3.2.12 Free
*
* @author Tassos Marinos <info@tassos.gr>
* @link http://www.tassos.gr
* @copyright Copyright © 2020 Tassos Marinos All Rights Reserved
* @license GNU GPLv3 <http://www.gnu.org/licenses/gpl.html> or later
*/
defined('_JEXEC') or die('Restricted access');
// import Joomla controlleradmin library
jimport('joomla.application.component.controlleradmin');
/**
* Export controller class.
*/
class ConvertFormsControllerExport extends JControllerAdmin
{
/**
* Used by the export form to submit the data
*
* @return void
*/
public function export()
{
JSession::checkToken('request') or die(JText::_('JINVALID_TOKEN'));
$app = JFactory::getApplication();
$input = $app->input;
$tz = new \DateTimeZone($app->getCfg('offset', 'GMT'));
$date = \JFactory::getDate()->setTimezone($tz)->format('YmdHis', true);
$filename = 'convertforms_submissions_' . $date . '.' . $input->get('export_type');
$options = $input->getArray();
$options['filter_search'] = $input->get('filter_search', null, 'RAW'); // Allow commas and special characters.
$options['filename'] = $input->get('filename', $filename);
$app->redirect('index.php?option=com_convertforms&view=export&layout=progress&' . http_build_query($options));
}
/**
* Force download of the exported file
*
* @return void
*/
public function download()
{
if (!$filename = JFactory::getApplication()->input->get('filename', '', 'RAW'))
{
throw new Exception('Invalid filename');
}
$filename = NRFramework\File::getTempFolder() . $filename;
if (!JFile::exists($filename))
{
throw new Exception('Invalid filename');
}
error_reporting(0);
// Send the appropriate headers to force the download in the browser
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . basename($filename) . '"');
header('Expires: 0');
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public", false);
header('Pragma: public');
header('Content-Length: ' . @filesize($filename));
// Read exported file to buffer
readfile($filename);
// Don't leave any clues on the server. Delete the file.
JFile::delete($filename);
jexit();
}
}