ホームページ >バックエンド開発 >PHPチュートリアル >PHP で MP4 ファイルをダウンロードする際のこの問題を解決してください。ファイルのダウンロードが不完全です。
❤️
ob_clean();
flash();
readfile($file);
MIME ヘッダーがありません header("Content-Transfer-Encoding: binary"); -Length: ".$len);
MIME ヘッダーがありません
header("Content-Length: ".$len);
上記の 2 つの文を削除するとダウンロードできますが、ファイル サイズはカウントされず、Thunder と IE ではダウンロードが表示されません時間。
nginx + php 環境では、IE と Thunder の両方が正常にダウンロードできます。ただし、私のファイルは flv であり、これは MIME ヘッダーが間違っていることを意味するだけです。 私のコードは次のとおりです。
$filename = ベース名 ($file)
$file_extension (substr(strrchr($filename,"."),1); ; switch( $ file_extension ) {
case "mp4": $ctype="video/mp4";
デフォルト: $ctype="application/force-download" }
header(" 有効期限: 0");
header("Cache-Control: public"); header("Content-Description: ファイル転送");
header("Content-Type: $ctype");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 ドキュメントをチェックしてください
ブログをチェックしてください