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