在 Codeigniter 中,我们可以使用force_download($file_name,$data)
下载助手中的函数来强制浏览器下载文件。
但这不是我需要的,我希望 Codeigniter 以文件对应的 MIME 类型响应 http 标头,以便浏览器可能会或可能不会下载文件,具体取决于是否有为该 MIME 注册的应用程序在客户端计算机上键入(如果有,该应用程序将打开该文件)。
有没有办法用 Codeigniter 做到这一点?
非常感谢大家。
在 Codeigniter 中,我们可以使用force_download($file_name,$data)
下载助手中的函数来强制浏览器下载文件。
但这不是我需要的,我希望 Codeigniter 以文件对应的 MIME 类型响应 http 标头,以便浏览器可能会或可能不会下载文件,具体取决于是否有为该 MIME 注册的应用程序在客户端计算机上键入(如果有,该应用程序将打开该文件)。
有没有办法用 Codeigniter 做到这一点?
非常感谢大家。
不,你不能用 Codeigniter 做到这一点。
一般来说,像PHP这样的服务器端技术,只能向客户端发送内容,不能直接与客户端交互。客户可以根据您发送给他们的任何内容来做他们想做的事。即使使用 javascript 之类的客户端工具,(谢天谢地)您也只能与客户端机器进行有限的交互。您想要做的是允许网站在访问时(自动)下载一个软件,并在客户端机器上执行它......
这就是所谓的恶意软件...(由ActiveX的制造商提供给您)
以上是直接回应
“......因此浏览器可能会或可能不会下载文件,具体取决于客户端计算机上是否有为该 MIME 类型注册的应用程序(如果有,该应用程序将打开该文件)。
更新
您可以通过普通的 php 标头操作来设置 mime 类型。以下示例直接取自 phpheader()
文档作为第一个示例。
<?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');
?>