PHP は、ファイルを操作するための便利な機能を多数提供するサーバーサイド プログラミング言語です。 Web アプリケーションでは、ファイルをダウンロードしてユーザーのデバイスに保存する必要がある場合があります。場合によっては、管理と識別を容易にするために、ダウンロードしたファイルの名前を変更したい場合があります。この記事では、PHP を使用してファイルをダウンロードし、その名前を変更する方法を説明します。
ファイルのダウンロード
PHP では、「ヘッダー」と呼ばれる特別な関数を使用して、あらゆる種類のファイルをダウンロードできます。 header 関数を使用する場合は、出力の前に何も生成されないことを確認する必要があります。さらに、ブラウザにファイルをダウンロードするように指示するには、正しい Content-Disposition ヘッダーを設定する必要があります。以下は、PHP を使用してファイルをダウンロードするためのサンプル コードです。
<?php $file_url = 'http://example.com/file.pdf'; header('Content-Type: application/octet-stream'); header("Content-Transfer-Encoding: Binary"); header("Content-disposition: attachment; filename=\"" . basename($file_url) . "\""); readfile($file_url); ?>
上記のコードは、「file.pdf」という名前の PDF ファイルをダウンロードします。さまざまな種類のファイルをダウンロードするには、Content-Type を変更します。たとえば、画像ファイルの場合は、Content-Type: image/jpeg または Content-Type: image/png を使用できます。
このコードは、readfile 関数を使用してファイルをユーザー デバイスにダウンロードします。大きなファイルを扱う場合は、ファイルをブロックごとに読み取り、データを出力するなど、より効率的な方法を使用することをお勧めします。
ファイルの名前変更
ファイルをダウンロードして名前を変更するには、Content-Disposition ヘッダーにファイル名を変更するコードを追加します。通常、Content-Disposition ヘッダーは、ダウンロードされたファイルの元の名前を指定します。コード例は次のとおりです。
<?php $file_url = 'http://example.com/file.pdf'; header('Content-Type: application/octet-stream'); header("Content-Transfer-Encoding: Binary"); header("Content-disposition: attachment; filename=\"new_name.pdf\""); readfile($file_url); ?>
「new_name.pdf」を任意のファイル名に置き換えることができます。これにより、ファイルをダウンロードするときに、元のファイル名ではなく、新しいファイル名が使用されるようになります。
ファイル名を動的に生成したい場合は、PHP のいくつかの関数を使用できます。たとえば、ファイル名に現在の日付/時刻を追加できます:
<?php $file_url = 'http://example.com/file.pdf'; $date = date("Y-m-d"); $new_filename = $date . "_new_file.pdf"; header('Content-Type: application/octet-stream'); header("Content-Transfer-Encoding: Binary"); header("Content-disposition: attachment; filename=\"$new_filename\""); readfile($file_url); ?>
上記の例では、コードはファイル名に現在の日付を追加し、ダウンロードされたファイル名が「2022-01」のようになります。 -01_新しいファイル.pdf」。
結論
PHP は、Web アプリケーション開発者がファイルを処理するための多くの機能を提供します。ファイルのダウンロードは、Web アプリケーションの一般的な要件の 1 つであり、PHP の機能を使用して簡単に実現できます。 Content-Disposition ヘッダーを設定することで、ダウンロードされるファイル名を制御できます。この記事では、ファイルのダウンロード方法とファイル名を変更する方法を紹介しますので、お役に立てれば幸いです。
以上がPHP を使用してファイルをダウンロードし、その名前を変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。