无法使用PHP强制下载文件

时间:2014-07-25 16:07:11

标签: php

我需要创建一个PHP页面,自动开始下载文件(我不想公开下载链接)。我已尝试在网络上使用几个示例,但所有示例最终都会在浏览器中以不正确的内容类型打开文件。 例如:

 <?php
// We'll be outputting a ZIP
header("Content-type: application/zip");

// Use Content-Disposition to force a save dialog.
// The file will be called "downloaded.zip"
header("Content-Disposition: attachment; filename=downloaded.zip");

readfile('downloaded.zip');
?>

当我执行此页面时,浏览器上的输出是: enter image description here 在尝试了此示例的所有可能变体之后,我的想法是问题出在我的托管环境中。我应该检查哪个变量,并且可能要求启用我的提供商?
谢谢!

2 个答案:

答案 0 :(得分:1)

尝试使用phpinfo()打印出以下变量:SERVER [&#34; HTTP_ACCEPT_ENCODING&#34;]。 我的怀疑是你不允许拉链 - 可能是不同的东西,比如&#34; gzip&#34;例如。

答案 1 :(得分:0)

这是我当天使用的代码:

                        header ("Content-Type: application");
                        header ("Content-Disposition: attachment; filename=\"$file\"");
                        header ("Content-Length: " . filesize ('./FILES/' . $file));
                        header ("Cache-Control: no-cache");
                        header ("Pragma: no-cache");
                        readfile ('./FILES/' . $file);
只需修改ofc的内容类型标题。