告诉浏览器在Codeigniter中打开或下载文件

bob*_*obo 1 php codeigniter download mime-types codeigniter-2

在Codeigniter中,我们可以使用force_download($file_name,$data)下载帮助程序中的函数强制浏览器下载文件.

但这不是我需要的,我希望Codeigniter响应文件对应的MIME类型的http标头,以便浏览器可能会也可能不会下载该文件,具体取决于是否有为该MIME注册的应用程序在客户端计算机上键入(如果有,则该应用程序将打开该文件).

有没有办法用Codeigniter做到这一点?

非常感谢大家.

jon*_*ohn 6

不,你不能用Codeigniter做到这一点.

一般来说,使用PHP等服务器端技术,您只能向客户端发送内容,而不能直接与客户端交互.客户可以根据您发送的任何内容做他们想做的事情.即使使用像javascript这样的客户端工具,(幸运的是),您只能与客户端计算机进行有限的交互.你想要做的是允许一个网站(自动)访问,下载一个软件,并在客户端机器上执行它...

这就是所谓的恶意软件......(由ActiveX制造商带给你)

以上是直接回应

"...这样浏览器可能会也可能不会下载文件,具体取决于客户端计算机上是否有为该MIME类型注册的应用程序(如果有的话,该应用程序将打开该文件).

UPDATE

您可以通过纯PHP标头操作设置mime类型.以下示例直接从php header()文档中获取,作为第一个示例.

<?php
// We'll be outputting a PDF
header('Content-type: application/pdf');

// It will be called downloaded.pdf
header('Content-Disposition: attachment; filename="downloaded.pdf"');

// The PDF source is in original.pdf
readfile('original.pdf');
?>
Run Code Online (Sandbox Code Playgroud)