2013-05-12 75 views
0

我有一個非常簡單的力量下載腳本:如何用php強制下載腳本計算時間?

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

而且它工作得很好,但它並沒有顯示多少時間剩餘(「無法計算時間」)。

我發現有人有類似的問題here,通過使用此代碼:

# 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> 

我也改變了路徑,以一個簡單的測試文件夾,但時間還沒有被顯示。

如何?

回答

0

您應該添加內容長度標題,讓您的瀏覽器知道總文件大小。

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

看看this example

+0

謝謝,但我已經嘗試過(頭文件(「Content-Length:」。filesize($ file));)但可用。 – 2013-05-12 10:35:55

+0

@EmilyAdler禁用GZIP並返回內容長度應該有所斬斷。如果它不檢查你的服務器返回給你的瀏覽器的頭文件。對於Firefox,有一個名爲Tamper Data的好插件。 – Tom 2013-05-12 11:25:24