ホームページ  >  記事  >  バックエンド開発  >  PHP で MP4 ファイルをダウンロードする際のこの問題を解決してください。ファイルのダウンロードが不完全です。

PHP で MP4 ファイルをダウンロードする際のこの問題を解決してください。ファイルのダウンロードが不完全です。

WBOY
WBOYオリジナル
2016-06-23 13:39:301294ブラウズ

❤️

ob_clean();
flash();
readfile($file);

MIME ヘッダーがありません header("Content-Transfer-Encoding: binary"); -Length: ".$len);
これら 2 つを削除してみてください

MIME ヘッダーがありません

MIME タイプ? IIS? filesize($file);

header("Content-Length: ".$len);

上記の 2 つの文を削除するとダウンロードできますが、ファイル サイズはカウントされず、Thunder と IE ではダウンロードが表示されません時間。

nginx + php 環境では、IE と Thunder の両方が正常にダウンロードできます。ただし、私のファイルは flv であり、これは MIME ヘッダーが間違っていることを意味するだけです。 私のコードは次のとおりです。


関数 dl_file( $file){ $len = ファイルサイズ ($file);

$filename = ベース名 ($file)

$file_extension (substr(strrchr($filename,"."),1); ;

switch( $ file_extension ) {
case "mp4": $ctype="video/mp4";
デフォルト: $ctype="application/force-download" }

header("Pragma: public") ;

header(" 有効期限: 0");

header("Cache-Control: public"); header("Content-Description: ファイル転送");

header("Content-Type: $ctype");
$header="Content-Disposition:attachment; filename=".$filename.""; header);
header ("Content-Transfer-Encoding: BINARY"); OB_CLEAN ();

Readfile ($ file); ;}}

dl_file ('http://res.805.com/videos/Huoshan・Shanglinhouyuan (Yiqianyi Group) [640x480].flv'); 1 つのファイル名のみが変更され、残りは変更されていません

nginx + php 環境では、IE と Thunder の両方が正常にダウンロードできます。ただし、私のファイルは flv であり、これは MIME ヘッダーが間違っていることを意味するだけです。 私のコードは次のとおりです。

関数 dl_file( $file){
$len = ファイルサイズ ($file);
$filename = ベース名 ($file)
$file_extension (substr(strrchr($filename,"."),1); ;
switch( $ file_extension ) {
case "mp4": $ctype="video/mp4";
デフォルト: $ctype="application/force-download" }
header("Pragma: public") ;
header(" 有効期限: 0");
header("Cache-Control: public"); header("Content-Description: ファイル転送");
header("Content-Type: $ctype");
$header="Content-Disposition:attachment; filename=".$filename.""; header);
header ("Content-Transfer-Encoding: BINARY");
OB_CLEAN ();
Readfile ($ file); ;}}
dl_file ('http://res.805.com/videos/Huoshan・Shanglinhouyuan(Yiqianyi Group) [640x480].flv'); 1 つのファイル名のみが変更され、他のファイル名は変更されていません


IE では、Thunder のダウンロードではファイル サイズが表示されますか?

まだテストしていませんが、「Content-Length ヘッダー」を含むものがあるはずです

ucenter ドキュメントをチェックしてください

ブログをチェックしてください

http://www.jb51.net/article/ 46440.htm
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。