0

我有一个相当简单的强制下载脚本:

$thefile = $_GET['id'];
$file = 'http://www.mywebsite.com/test/'.$thefile;
header('Content-Disposition: attachment; filename='.$thefile); 
header("Content-Type: application/force-download");
@readfile($file);

它工作得很好,除了它没有显示剩余的时间(“无法计算时间”)。

通过使用以下代码,我在这里找到了有类似问题的人:

# for URL paths that begin with "/foo/bar/"
SetEnvIf Request_URI ^/foo/bar/ no-gzip=1

# for files that end with ".py"
<FilesMatch \.py$>
    SetEnv no-gzip 1
</FilesMatch>

但很可惜,我无法让它发挥作用。我的文件是媒体文件(avi、wmv、mp4 等),所以我认为我必须按照以下几行修改代码:

SetEnvIf Request_URI ^/test/ no-gzip=1

<FilesMatch "\.(avi|wmv|mp4|mpg|mpeg|m4v)$">
    SetEnv no-gzip 1
</FilesMatch>

我也将路径更改为一个简单的测试文件夹,但仍然没有显示时间。

如何?

4

1 回答 1

0

您应该添加内容长度标头,以便您的浏览器知道总文件大小。

header("Content-Length: " . filesize($file));

看看这个例子

于 2013-05-12T10:29:28.050 回答