csv文件显示而不是下载


csv file is shown instead of downloaded

我知道有很多关于这方面的话题已经准备好了,但是,我已经尝试了一切,但都没有成功。

这是我的问题:

我在opencart上安装了一个插件,该插件应该允许管理员以XML、CSV或Excel文件导出订单。然而,浏览器打开文件而不是下载。插件在作者的演示页面上运行得很好。我问作者是否有这个问题的线索,但没有任何具体的答案。在尝试了很多可能的解决方案后,我开始认为问题可能是由我的服务器设置引起的。

标题如下:

$this->response->addHeader('Content-Type: application/vnd.ms-excel; charset=UTF-8');
$this->response->addHeader('Content-Disposition: attachment; filename="orders-' . date('YmdHis') . ".{$fext}'"");
$content = (($fext == 'csv') ? mb_convert_encoding($this->render(), 'GBK', 'UTF-8') :
$this->render());

我已经尝试更改text.csv、application.csv、application/octet流和其他一些流的内容类型。没有什么能奏效。

在我的.htaccess文件中,我尝试添加以下代码:

AddType application/octet-stream .csv
AddType application/octet-stream .xls

这个:

<FilesMatch "'.(?i:xls|csv)$">
 Header set Content-Disposition attachment
</FilesMatch>

也没有任何成功。

有人有主意吗?

感谢

添加标题后,在下面添加此行:

$this->response->setOutput($output);

输出变量应包含csv字符串数据。你也可以试试:

$this->response->setOutput($this->render());

不确定您的订单导出工具是如何根据您的描述创建csv的,但希望这能为这个问题提供一些线索。