如何在不强制下载的情况下从CodeIgniter输出文件?

Hig*_*lar 1 codeigniter header download

似乎有很多解决方案可供CodeIgniter强制下载文件,但是我找不到任何输出文件而不强制下载.

在我的情况下,我通过控制器(最初Apache直接处理它)重定向我的文件下载,以便记录统计信息.我在下载助手中使用了CodeIgniter force_download函数.但是,我现在有一个请求,应该能够在浏览器中打开一些或所有文件,这样就不会强制保存到文件中,所以我想知道如何操作.

据推测,这主要是输出正确的标题,但我不知道不同的文件类型是否需要不同的标题.有人有例子吗?

Dra*_*agu 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;
}
Run Code Online (Sandbox Code Playgroud)