似乎有很多解决方案可供CodeIgniter强制下载文件,但我找不到任何输出文件而不强制下载。
在我的情况下,我通过控制器重定向我的文件下载(最初Apache直接处理它们)以记录统计信息。我在下载助手中使用了CodeIgniter force_download函数。但是,我现在有一个请求,应该能够在浏览器中打开一些或所有文件,这样就不会强制保存到文件中,所以我想知道如何操作。
据推测,这主要是输出正确的标题,但我不知道不同的文件类型是否需要不同的标题。有人有例子吗?
答案 0 :(得分:5)
您只需指定好的mime类型并省略Content-Disposition: attachment
。
因此,如果浏览器可以渲染它,它将被显示。如果不能,则会下载。
示例:
$file = 'images/smileys/panda.gif';
if (file_exists($file))
{
$finfo = new finfo(FILEINFO_MIME);
header('Content-Description: File Transfer');
header('Content-Type: '.$finfo->file($file));
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;
}