如果文件大小为0字节或者内部没有任何内容,我无法下载任何文件(文本,文档或任何其他扩展名)。以下是我使用的代码如下。
$filename = $this->input->get('filename');
$fileoriginalname = $this->input->get('fileorgname');
$this->load->helper('download');
$Path = 'files/'.$filename;
$data = file_get_contents($Path);
force_download($fileoriginalname, $data);
任何人都可以帮我解决它。如果文件里面有任何内容,上面的代码工作正常,但如果没有任何内容就停止工作,所以我很困惑,不知为何感到沮丧。
答案 0 :(得分:2)
我也遇到了这个问题,但不知怎的,我得到了File Size Zero
的帮助您可以使用以下代码,看看它是否有帮助。
而不是使用force_download
试试这个
if(ini_get('zlib.output_compression'))
{
ini_set('zlib.output_compression', 'Off');
}
$this->load->helper('file');
$mime = get_mime_by_extension($Path);
header('Pragma: public'); // required
header('Expires: 0'); // no cache
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Last-Modified: '.gmdate ('D, d M Y H:i:s', filemtime ($Path)).' GMT');
header('Cache-Control: private',false);
header('Content-Type: '.$mime);
header('Content-Disposition: attachment; filename="'.$fileoriginalname.'"'); // Add the file name
header('Content-Transfer-Encoding: binary');
header('Content-Length: '.filesize($Path));
header('Connection: close');
readfile($Path);
exit();
答案 1 :(得分:0)
我在这里猜测,无法看到剩下的代码。
我假设当您尝试下载0字节的文件时,正在发生错误
所以我可能会写一些类似
的内容if(!force_download($fileoriginalname, $data))
{
\\ the file download failed. handle this error
}