如何在不强制下载的情况下从CodeIgniter输出文件?
对于CodeIgniter强制下载文件,似乎有很多解决方案,但我找不到任何不强制下载就输出文件的解决方案 在我的例子中,我通过一个控制器(最初由Apache直接处理)重定向了文件下载,以便记录统计数据。我在下载助手中使用了CodeIgniter force_下载功能。但是,我现在收到一个请求,要求在浏览器中打开部分或所有文件,这样就不会强制保存到文件中,所以我想知道如何操作如何在不强制下载的情况下从CodeIgniter输出文件?,codeigniter,header,download,Codeigniter,Header,Download,对于CodeIgniter强制下载文件,似乎有很多解决方案,但我找不到任何不强制下载就输出文件的解决方案 在我的例子中,我通过一个控制器(最初由Apache直接处理)重定向了文件下载,以便记录统计数据。我在下载助手中使用了CodeIgniter force_下载功能。但是,我现在收到一个请求,要求在浏览器中打开部分或所有文件,这样就不会强制保存到文件中,所以我想知道如何操作 据推测,这主要是输出正确的头的问题,尽管我不知道不同的文件类型是否需要不同的头。有人举过一个例子吗?您只需指定好的mime
据推测,这主要是输出正确的头的问题,尽管我不知道不同的文件类型是否需要不同的头。有人举过一个例子吗?您只需指定好的mime类型并省略
内容处置:附件
因此,如果浏览器可以渲染它,它将被显示。如果不能,它将被下载
例如:
$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;
}
您只需指定好的mime类型并省略
内容处置:附件
因此,如果浏览器可以渲染它,它将被显示。如果不能,它将被下载
例如:
$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;
}
应能在浏览器中打开所有文件
。但是pdf/excel/doc的格式是什么?所有文件都应该可以在浏览器中打开
。但是pdf/excel/doc是哪种格式呢?我在这一过程中发现了两件事:不要将内容类型放在引号中,但是如果指定文件名,请将其放在引号中,否则文件名中的逗号将导致重复的标题错误。如果触发下载,可以如下指定默认文件名:header('Content-Disposition:inline;filename=“July Report.pdf”);在此过程中我发现了两件事:不要将内容类型放在引号中,但如果指定文件名,请将其放在引号中,否则文件名中的逗号将导致重复的标题错误。如果触发下载,可以如下指定默认文件名:header('Content-Disposition:inline;filename=“July Report.pdf”);