この記事では、PHP での ZipArchive 圧縮ファイルとパッケージ化されたファイルのダウンロードについて簡単に紹介します。PHP でのファイルのパッケージ化について知りたい場合は、次の 5 ページを参照してください。
技術的なポイントの分析:
ファイルをzip形式にパッケージ化する
ファイルをダウンロードする機能
重要なポイントの分析:
ここではphpに付属のZipArchiveクラスを使用します
a) 新しいZipArchiveオブジェクトを作成するだけです。 open メソッドを使用して zip ファイルを作成し、次に addFile メソッドを使用して、作成した zip ファイルにパッケージ化するファイルを書き込みます。忘れずにオブジェクトを閉じることをお勧めします。
b) 注: open メソッドを使用する場合、2 番目のパラメーター $flags は、開かれた zip ファイルの処理方法を指定するために使用されます。新しいファイル。指定された zip ファイルが存在する場合、
が対象となります。
ファイルが存在する場合、エラーが報告されます。
iv. ZIPARCHIVE::CHECKCONS
---------------------------- --------------------------------------
ダウンロードの流れファイル:
サーバー側の作業: ----------------------------------------------------- ------クライアントのブラウザは、ダウンロードされた php ファイルを処理するリクエストを送信します。 注: ビデオ、オーディオ、テキスト ファイルのいずれであっても、操作は最初にメモリに書き込まれる必要があります。 言い換えれば、「サーバー」上のファイルを「サーバー」のメモリに読み取る操作が不可欠です (注: ここでは、主にこのシステムを説明するために、サーバーという単語を二重引用符で囲んでいます。クラスの操作は上で完了します)サーバー)。
ここでは 3 つのファイル操作関数を示します: 1 つ: fopen($filename,$mode)
2 つ: fread (int $handle, int $length)🎜3: fclose (resource $handle)🎜🎜--------------------------------- -- --------🎜クライアント側の作業:🎜----------------------------- -- ---🎜では、サーバー側のメモリにすでに存在するファイル情報ストリームをクライアントに渡すにはどうすればよいでしょうか? 🎜答えは header() 関数を介して行われ、クライアントはファイルの処理方法、保存するか開くかなどがわかります。 🎜🎜🎜🎜 最終的な効果は以下のようになります: 🎜🎜🎜🎜🎜🎜コードは次のとおりです<?php | は './ download.php';Public $ FileInfo; // すべてのファイル名、ディレクトリ名、ファイル サイズを現在のディレクトリに保存するために使用されます | Public function __construct () {|||||
echo "<script>alert('現在のディレクトリは有効なディレクトリではありません '); 4;<p> *** )){ <br> $zip->open($zipname.'.zip',ZipArchive::OVERWRITE);//空の zip ファイルを作成する{<br> $zip-> <br> $dw =new download($zipname.'.zip');$dw->getfiles(); ?><br><br> <br> <br></p>
<table width="620" align="center" border="0" cellpadding="1" cellspacing="1" style="background:#FB7"> <tr> <td width="464" height="27" bgcolor="#FFE7CE">コードは次のとおりです</td> <td width="109" align="center" bgcolor="#FFE7CE" style="cursor:pointer;" onclick="doCopy('copy4364')">コードをコピーします</td> </tr> <tr> <td height="auto" colspan="2" valign="top" bgcolor="#FFFFFF" style="padding:10px;" class="copyclass" id="copy4364">
<p><?php<br /> /**<br /> * ファイルをダウンロード <br /> *<br />*/<br /> { <br /> // ファイル名を取得します<br /> function getfilename(){<br /> return $this->>_filepath;<br>ファイルサイズを取得する b public function getfilesize () {<br> Return $ this-& gt; this- & _filepath), (1024*1024); // 小数点以下 2 桁 <br>} <br> // ファイルをダウンロードする関数 <br> use using using out out out of ''s 's ‐ to ‐ - ‐ ‐ ‐ ‐ $ $ file = fopen($ this-&gt; _filepath、 "r"); this-&gt; _filename);; //毎回 1024 をクライアントに送り返す バイト数 <br> echo $file_data; se {<br> echo "<script>alert('ダウンロードは存在しません');</script> "; ページ上の表示コードは以下の通りです
概要:
を使用してファイルをダウンロードする操作は、 PHP には 4 つのヘッダー () が必要です。私の他のブログ投稿を参照してください: PHP がダウンロード関数を実装する方法の詳細なプロセス分析 |