を持つ大規模なMKVファイルをダウンロードします。スクリプトは、Firefoxとクロムの両方でのAVIファイルのために正常に動作します私はこの結論に来ている下のコードを使用していくつかのテストの後、PHPスクリプト
- (私はコンテンツタイプを変更した場合to video/avi to course)
- このスクリプトは、ChromeのMKVファイルで正常に動作します。 Firefoxは私の顔にエラーメッセージを投げます(下記参照)
- 私は小さなファイルでテストするために、http://matroska.org/downloads/test_w1.htmlから20メガビットの大きなテストファイル(test7.mkv)をダウンロードしました。不思議なことに、Firefoxはそのファイルをダウンロードでき、うまくいくようです。しかし、6GBの大きなファイルで試してみると、以下のようなFirefoxエラーが表示されます
- 編集:SMプレイヤー(exitcode 1)では再生できませんでしたが、VLCプレーヤーで正常に再生された700 MBのファイルをダウンロードしました。私は現在、ファイルがどのようにどこで破損しているのかを見つける方法を探しています。
私の明らかな質問は何ですか:私は間違っていますか?どのようにmkvファイルをfirefoxで適切にダウンロードするか、それとも一般的なブラウザであれより良い方法です。私はグーグルで役立つ何かを見つけることはできませんが、多分私は間違った場所を探しています。データ伝送におけるエラーが検出されたため、表示しようとしているページは表示されません
破損したコンテンツのエラーを
:MKVファイルをダウンロードしようとしている
Firefoxのエラー。
データ送信のエラーが検出されたため、表示しようとしているページを表示できません。 のWebサイトに連絡して、この問題を通知してください。
function download($file)
{
$path = $_SERVER['DOCUMENT_ROOT']; //<-- added the relative part after that
$fullPath = $path.$file;
set_time_limit(0);
if ($fd = fopen ($fullPath, "r"))
{
$fsize = filesize($fullPath);
$path_parts = pathinfo($fullPath);
$ext = strtolower($path_parts["extension"]);
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Type: video/x-matroska");
header("Content-Disposition: attachment; filename=\"$file\"");
header("Content-Transfer-Encoding: binary");
header("Content-length: $fsize");
$file = @fopen($fullPath,"rb");
if ($file)
{
while(!feof($file))
{
print(fread($file, 1024*8));
flush();
if (connection_status()!=0)
{
@fclose($file);
die();
}
}
@fclose($file);
}
exit;
}
}
破損したファイルのソースコードを調べます。 PHPエラーメッセージが表示されます。 –
このファイルのようなヘッダーを設定しないと、$ filePathでファイルをダウンロードするようにユーザーに求められますか?ブラウザがファイルが破損していることを伝えています。私はどんなPHPメッセージも手に入れません。 – wacki
ダウンロードしたファイル。それを見てください。 –