TYPO3:后端文件下载
TYPO3: File download in Backend
我想在后端集成 CSV 下载。 CSV 文件不必保存在服务器上,因此只需一个简单的 Array-to-CSV 文件即可下载。
我知道在 TYPO3 中使用 FAL 非常乏味,所以我想知道是否有一个简单的解决方案来解决我的问题。就像调用 "download" 操作并返回 "CSV string" 进行下载一样?
我确实使用了这个 solution 下载操作,但我正在寻找一个没有 FAL 且没有将文件保留在服务器上的解决方案。
无需 FAL 或在服务器上保存文件。您可以在控制器中添加自定义操作,设置 content-type 和配置 headers 以将您的请求视为下载:
public function exportAction()
{
// Just an example on how you could access the downloadable data.
$records = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('*', 'tx_domain_model_table');
// modify the result to be a csv encoded string, json or whatever you want it to be.
$data = myConvert($records, 'csv');
header('Content-Type: text/x-csv');
header('Content-Disposition: attachment; filename="download.csv"');
header('Pragma: no-cache');
return $data;
}
例如,$data
等于一个 csv 编码数组。
更有趣的是你希望下载什么样的数据。要使您的数据可下载,设置 header()
并返回任何简单数据类型应该可行。
我想在后端集成 CSV 下载。 CSV 文件不必保存在服务器上,因此只需一个简单的 Array-to-CSV 文件即可下载。
我知道在 TYPO3 中使用 FAL 非常乏味,所以我想知道是否有一个简单的解决方案来解决我的问题。就像调用 "download" 操作并返回 "CSV string" 进行下载一样?
我确实使用了这个 solution 下载操作,但我正在寻找一个没有 FAL 且没有将文件保留在服务器上的解决方案。
无需 FAL 或在服务器上保存文件。您可以在控制器中添加自定义操作,设置 content-type 和配置 headers 以将您的请求视为下载:
public function exportAction()
{
// Just an example on how you could access the downloadable data.
$records = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('*', 'tx_domain_model_table');
// modify the result to be a csv encoded string, json or whatever you want it to be.
$data = myConvert($records, 'csv');
header('Content-Type: text/x-csv');
header('Content-Disposition: attachment; filename="download.csv"');
header('Pragma: no-cache');
return $data;
}
例如,$data
等于一个 csv 编码数组。
更有趣的是你希望下载什么样的数据。要使您的数据可下载,设置 header()
并返回任何简单数据类型应该可行。