


PHP はブレークポイントでダウンロードを再開するメソッドを実装します。PHP はブレークポイントで再開可能なダウンロードを実装します_PHP チュートリアル
PHP はブレークポイントでダウンロードを再開するメソッドを実装し、PHP はブレークポイントで再開可能なダウンロードを実装します
この記事の例では、PHP でダウンロードを再開するブレークポイントを実装する方法を説明します。参考のためにみんなで共有してください。
具体的な実装コードは次のとおりです:
* PHP ダウンロード ブレークポイントの再開
*/
関数 dl_file_resume($file){
// ファイルが存在するかどうかを確認します
If (!is_file($file)) { die("404 ファイルが見つかりません!"); }
$len = filesize($file);//ファイルサイズを取得します
$filename =basename($file);//ファイル名を取得します
$file_extension = strto lower(substr(strrchr($filename,"."),1));//ファイル拡張子を取得します
//拡張子に基づいて出力ブラウザ形式を指定します
switch( $file_extension ) {
case "exe": $ctype="application/octet-stream"; case "zip": $ctype="application/zip"; case "mp3": $ctype="audio/mpeg"; ケース "mpg":$ctype="ビデオ/mpeg"; ケース "avi": $ctype="video/x-msvideo"; デフォルト: $ctype="application/force-download"; }
//ヘッダーの書き込みを開始します
header("キャッシュコントロール:"); header("キャッシュ制御: パブリック");
//出力ブラウザ形式を設定します
header("コンテンツタイプ: $ctype"); If (strstr($_SERVER['HTTP_USER_AGENT'], "MSIE")) {//IE ブラウザの場合
# ファイル名に複数のピリオド/複数のドットが含まれる IE ファイル名のバグの回避策
# ファイル名に角括弧を追加します - 例: setup.abc.exe は setup[1].abc.exe になります
$iefilename = preg_replace('/./', '%2e', $filename, substr_count($filename, '.') - 1); header("Content-Disposition:attachment; filename="$iefilename""); } その他 {
header("Content-Disposition:attachment; filename="$filename""); }
header("受け入れ範囲: バイト");
$size=ファイルサイズ($file); // $_SERVER['HTTP_RANGE'] パラメータがある場合
If(isset($_SERVER['HTTP_RANGE'])) {
/* ------------------------
Range ヘッダー フィールド Range ヘッダー フィールドは、エンティティの 1 つ以上のサブ範囲を要求できます。たとえば、最初の 500 バイトを表します: bytes=0-499 は 2 番目の 500 バイトを表します: bytes=500-999 は最後の 500 バイトを表します: bytes=-500 は 500 バイト以降の範囲を表します: bytes=500- 最初と最後のbytes: bytes=0-0,-1 同時に複数の範囲を指定します: bytes=500-600,601-999 ただし、無条件 GET に Range リクエスト ヘッダーが含まれる場合、サーバーはこのリクエスト ヘッダーを無視できます。コード 200 (OK) の代わりにコード 206 (PartialContent) が返されます。
-------------------------*/
// ブレークポイントと $_SERVER['HTTP_RANGE'] の値の後に再度接続します bytes=4390912-
list($a, $range)=explode("=",$_SERVER['HTTP_RANGE']); //「はい」の場合、不足している部分をダウンロードします
str_replace($range, "-", $range);//この文は何ですか? 。 。 。
$size2=$size-1;//ファイル内の合計バイト数
$new_length=$size2-$range;//次回のダウンロードの長さを取得する
header("HTTP/1.1 206 部分的なコンテンツ"); header("Content-Length: $new_length");// 合計の長さを入力
header("Content-Range: bytes $range$size2/$size");//Content-Range: バイト 4908618-4988927/4988928 95% の確率で
} else {//最初の接続
$size2=$size-1; header("Content-Range: バイト 0-$size2/$size"); //Content-Range: バイト 0-4988927/4988928
header("Content-Length: ".$size);//出力の全長
}
// ファイルを開く
$fp=fopen("$file","rb"); // ポインターの位置を設定します
fseek($fp,$range);//アンリアル出力
While(!feof($fp)){
//ファイルの最大実行時間を設定します
set_time_limit(0); print(fread($fp,1024*8));//出力ファイル
flush();//出力バッファ
ob_flush(); }
fclose($fp); 出る
}
dl_file_resume("1.zip");//同じディレクトリ内の 1.zip ファイル
//-----------------------------------------------
//ブレークポイントで再開できるファイルのダウンロードはサポートされていません。
//-----------------------------------------------
ダウンファイル("1.zip");
関数 downFile($sFilePath)
{
If(file_exists($sFilePath)){
$aFilePath=explode("/",str_replace("\","/",$sFilePath),$sFilePath); $sFileName=$aFilePath[count($aFilePath)-1]; $nFileSize=ファイルサイズ ($sFilePath); header ("Content-Disposition: 添付ファイル; ファイル名 = . $sFileName); header ("Content-Length: " . $nFileSize); ヘッダー ("コンテンツタイプ: application/octet-stream"); readfile($sFilePath); }
それ以外
{
echo("ファイルが存在しません!"); }
}
?>
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。
http://www.bkjia.com/PHPjc/910607.html
www.bkjia.com
true
PHP でダウンロードのブレークポイントを再開する方法を実装します。 PHP でブレークポイントを使用して再開する方法を説明します。 この記事では、PHP でダウンロードの再開を実装する方法について説明します。参考のためにみんなで共有してください。 具体的な実装コードは次のとおりです:...

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。
