2015-02-23 65 views
-1

我正在創建應該創建鏈接以下載xpi文件的項目。在PHP中下載xpi文件

牛逼他是我的PHP代碼來下載文件:

$fileName = 'file.xpi'; 
$size = filesize($fileName); 

$fp = fopen($fileName, "rb"); 
$content = fread($fp, $size); 
fclose($fp); 

header("Content-length: ".$size); 
header("Content-type: application/x-xpinstall"); 
header("Content-disposition: attachment; filename=".$fileName.";"); 
echo $content; 

此代碼工作的很好,但下載的文件是我的問題..當我運行,火狐顯示此錯誤消息:

此附加組件無法安裝,因爲它似乎已損壞。

這兩個文件(服務器和下載的文件)都具有相同的信息。

文件服務器上

西伯:14.7 MB(15509809個字節)

西伯磁盤上:14.7 MB(15511552個字節)

下載文件

西伯:14.7 MB(15509809個字節)

Sive on Disk:14.7 MB(15,511,552字節)

我該怎麼辦?

+0

原始文件是否工作? – 2015-02-23 08:46:57

+0

也許更好:使用[fpassthu](http://php.net/manual/en/function.fpassthru.php)。這樣,您不必在字符串中加載整個文件。 – GolezTrol 2015-02-23 08:49:30

+0

是您想要下載一個可用的Firefox附件的文件嗎?由於Firefox會嘗試安裝結尾.xpi的文件 – DKSan 2015-02-23 09:08:23

回答

1

在記事本等某種文本編輯器中打開下載的文件,並檢查文件開頭是否沒有任何純文本PHP相關的錯誤。

+0

坦克,我忘記檢查記事本中的文件!在我創建的頁面頂部存在斷行,並且一個'Enter'加入到文件中。恰到好處。 – MajiD 2015-02-23 09:15:52