Webページを通じて様々なファイルをダウンロードすることがよくありますが、どうすればよいでしょうか?この記事では、http 関連のコンテンツと組み合わせて、PHP の観点からファイルのダウンロードについて説明します。
一般的に、ファイルはハイパーリンクを通じて直接ダウンロードできます。
<a href='要下载的文件'>点击下载</a>
この方法では、.exe、.rar などの多くの形式のファイルに対応できますが、画像形式、html、txt などのファイルの場合は、リンクをクリックしてもブラウザ上に直接表示されるだけになります。 。では、この状況にどう対処すればよいのでしょうか?このとき、phpが表示される必要があります。
私の限られた PHP プログラミング経験の中で、私は 2 つの形式の PHP ダウンロード ファイルに遭遇しました。全体として、ファイルのダウンロードは、応答ヘッダーを設定することによって実現されます。原理的には本質的な違いはありません。
最初のもの:
$file_name='文件名'; header ( 'Content-Disposition: attachment; filename=' . basename ( $file_name )); header ( 'Content-Length: '.filesize ( $file_name )); readfile ( $file_name );
$filename には、ダウンロードしたファイルの名前が設定されます。 readfile() を通じてファイルを読み取り、出力バッファに書き込みます。
2番目:
$file_name='要下载的文件名';$fp=fopen($file_name,"r+");$file_size=filesize($file_name);//header("Content-type: application/octet-stream"); //返回的文件类型//header("Accept-Ranges: bytes");//按照字节格式返回header("Accept-Length: ".$file_size);header("Content-Disposition: attachment; filename=".$file_name);$buffer=1024;while(!feof($fp)){ $file_data=fread($fp,$buffer); echo $file_data;}fclose($fp);
この方法では、ファイルをダウンロードするプロセスをより詳しく説明します。