4

以下是我用来在 codeigniter 中强制在我的服务器上下载一些文件的代码。下载的文件已损坏,MS Excel 无法打开它。我认为这段代码没有任何问题。我使用 ftp 从服务器下载了文件并检查了它们,它们打开得很好。我不知道我哪里做错了。

$this->load->helper('download');
$path = base_url('reference/filename.xlsx');
$data = file_get_contents($path); // Read the file's contents
$name = 'filename.xlsx';
force_download($name, $data); 
4

4 回答 4

2

在获取数据之前,使用 ob_clean() 函数刷新输出缓冲区。

您的代码现在应该如下所示。

$this->load->helper('download');
$path = base_url('reference/filename.xlsx');

ob_clean();

$data = file_get_contents($path); // Read the file's contents
$name = 'filename.xlsx';
force_download($name, $data);
于 2016-09-19T04:01:13.043 回答
0

我有同样的问题,CI 默认不支持 xlsx。您将不得不找到一些库来执行此操作。无论如何,您可以根据需要下载为 csv。

于 2013-09-23T09:00:26.700 回答
0

我发现如果在加载任何 html 内容之前在模型中使用 force_download() 下载 Excel xlsx-files 就可以了。在加载任何视图之前,我在导航模型中使用 force_download。

于 2014-04-04T11:26:24.053 回答
0

你的答案是正确的。但路径不正确。但不显示错误消息。评论并运行。然后你可以看到路径的错误信息

//force_download($name, $data); 

并修复路径以更正并再次删除评论并运行,然后可以打开下载的文件。

于 2017-08-31T09:15:04.757 回答