TYPO3: загрузка файлов в бэкэнд
Я хотел бы интегрировать загрузку CSV в бэкэнд. Файл CSV не нужно сохранять на сервере, поэтому просто загрузите его в массив Array-to-CSV.
Я знаю, что использование FAL довольно утомительно в TYPO3, поэтому я хотел бы знать, есть ли простое решение для моей проблемы. Например, вызывать действие "скачать", возвращая "строку CSV" для загрузки?
Я использовал это решение для загрузки, но я ищу решение без FAL и без сохранения файла на сервере.
1 ответ
Нет необходимости в FAL или сохранении файла на сервере. Вы можете добавить настраиваемое действие в вашем контроллере, которое устанавливает заголовок типа контента и расположения для обработки вашего запроса как загрузки:
public function exportAction {
// Just an example on how you could access the downloadable data.
$records = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('*', 'tx_domain_model_table');
$data = // modify the result to be a csv encoded string, json or whatever you want it to be.
header('Content-Type: text/x-csv');
header('Content-Disposition: attachment; filename="download.csv"');
header('Pragma: no-cache');
return $data;
}
куда $data
равняется массиву csv, например.
Более интересно то, какие данные вы хотите загружать. Чтобы сделать ваши данные загружаемыми, установите header()
и возвращение любого простого типа данных должно работать.