5. ダウンロードページ (download.php)

このドキュメントでは、保存したスレッドのアーカイブ(ZIP/MHTファイル)をユーザーに提供する download.php の機能と仕様について説明します。

機能概要

download.php は、ユーザーがスレッドのコンテンツをまとめてダウンロードするためのページです。主に2つの役割を担います。

  1. ダウンロードリンクの表示: 指定されたスレッドのメタ情報を表示し、ZIP形式またはMHT形式のダウンロードリンクをユーザーに提示します。

  2. アーカイブファイルの提供: ユーザーが選択した形式のアーカイブファイルを生成し、ダウンロードさせます。ファイルの提供方法には、サーバー上にファイルをキャッシュする「ファイルキャッシュモード」と、ファイルを保存せずに直接ストリームを送信する「オンザフライモード」の2種類があります。

URLパラメータ

download.php は以下のGETパラメータを受け取ります。

動作フロー

  1. リンク表示ページ (type パラメータなし):

    • download.php?rooturl=... のようにアクセスされると、スレッドの概要情報とダウンロードリンク選択ページが表示されます。
    • オブジェクトストレージ連携が有効で、公開URL (zip_publish_path / mht_publish_path) が存在する場合、そのURLへの直接リンクが最優先で表示されます。
    • そうでない場合、typedlnameパラメータが付与された、このスクリプト自身へのリンクが生成されます。
  2. ファイルダウンロード処理 (type パラメータあり):

    • download.php?rooturl=...&type=zip&dlname=... のようにアクセスされると、指定された形式のアーカイブファイルが生成され、ユーザーに送信されます。
    • この際のファイル生成方法は、config.phpZIPONTHEFLY 設定によって変わります。

ダウンロード処理の詳細

オンザフライ生成モード

このモードは、アーカイブファイルをサーバーのディスクに保存せず、動的に生成しながら直接ダウンロードストリームとしてクライアントに送信します。

ファイルキャッシュモード

このモードは、まずサーバーの zip/ ディレクトリにアーカイブファイルを生成(またはキャッシュを再利用)し、そのファイルをクライアントに送信します。

関連する設定 (config.php)

テンプレートファイル