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()и возвращение любого простого типа данных должно работать.

Другие вопросы по тегам