用于下载损坏文件的excel文件的codeigniter force_download()


codeigniter force_download() for excel file downloading a corrupt file

以下是我用来在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); 

在获取数据之前,使用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);

我遇到了同样的问题,默认情况下CI不支持xlsx。你必须找到一些自由来做这件事。无论如何,如果你愿意,你可以下载csv。

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

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

//force_download($name, $data); 

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