Web 開発では、ファイルのアップロードとダウンロードは非常に一般的な要件です。ユーザーがアバターやドキュメントをアップロードする場合でも、管理者がユーザーにファイルのダウンロードを要求する場合でも、この機能は必要です。 PHP は強力なサーバーサイド言語として、強力なファイル操作関数とクラス ライブラリを当然提供しており、ファイルのアップロードおよびダウンロード機能を簡単に実装できます。
この記事では、PHP でファイルのアップロードとダウンロードを実装するための基本的なプロセスと共通の関数を紹介し、サンプル コードを提供します。あなたが PHP の初心者であるか、ファイル操作を学習している場合、この記事が何らかのガイダンスと助けになることを願っています。
ファイルのアップロード
PHP では、ファイルのアップロードは HTTP プロトコルを通じて実装されます。つまり、ユーザーはフォームを通じてローカル ファイルを選択し、それをサーバーにアップロードできます。使用する必要がある関数は、$_FILES グローバル変数と move_uploaded_file() 関数です。
まず、フロントエンドで HTML フォームを記述する必要があります。コードは次のとおりです。
<form method="post" action="upload.php" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" value="上传文件"> </form>
投稿するフォームのメソッド、バックグラウンド処理ファイルのアップロード用の php ファイルへのアクション、および enctype を次のように設定する必要があることに注意してください。ファイルのアップロードをサポートする multipart/form-data。
次に、ファイルのアップロードを処理するために、バックグラウンドで Upload.php ファイルにコードを記述します。コードは次のとおりです。
<?php if(isset($_FILES['file'])){ $file = $_FILES['file']; $filename = $file['name']; $tmp_name = $file['tmp_name']; $target_path = "./uploads/".$filename; move_uploaded_file($tmp_name, $target_path); echo "文件上传成功"; } ?>
if を使用してファイルがアップロードされているかどうかを判断し、ファイルに関するさまざまな情報を $_FILES 配列から取得します。 $file['name'] はファイル名を表し、$file['tmp_name'] は一時ファイルのファイル パスを表します。これをサーバー上の指定された場所 (「./uploads/」ディレクトリであると仮定して) に移動し、最後にアップロード成功のメッセージを出力する必要があります。
ファイルのダウンロード
ファイルのダウンロードとは、ユーザーがリンクまたはボタンをクリックしてサーバーからローカルにファイルをダウンロードできることを意味します。使用する必要がある関数は、header() 関数と readfile() 関数です。
まず、ユーザーがファイルをダウンロードできるように、サーバー上のファイルのアクセス許可を設定する必要があります。 .htaccess ファイルまたは Web サーバーの構成ファイルを通じて設定できます。
次に、フロントエンドで HTML コードを記述して、ダウンロード リンクを生成します。コードは次のとおりです。
<a href="download.php?filename=test.pdf">点击下载文件</a>
バックグラウンド処理ファイルによってダウンロードされた php ファイルへのリンクの href を設定する必要があり、ファイル名をパラメータとして取得する必要があることに注意してください。リンク。
最後に、ファイルのダウンロードを処理するために、バックグラウンドで download.php ファイルにコードを記述します。コードは次のとおりです。
<?php if(isset($_GET['filename'])){ $filename = "./uploads/".$_GET['filename']; if(file_exists($filename)){ header('Content-type: application/pdf'); header('Content-Disposition: attachment; filename="'.basename($filename).'"'); readfile($filename); exit; }else{ echo "文件不存在"; } } ?>
if を使用して、渡されたファイル名パラメータがあるかどうかを判断し、ファイル名に基づいてファイルの絶対パスを生成します。ファイルが存在する場合は、Content-type をファイル タイプ (ここでは pdf タイプであると仮定します) に設定し、Content-Disposition を添付ファイルに設定する必要があります。これは、添付ファイルとしてダウンロードしてファイルのコンテンツを出力することを意味します。最後に、ブラウザが他のコンテンツを出力しないように exit を追加します。
概要
この記事の簡単な紹介を通じて、読者は PHP でのファイルのアップロードとダウンロードについてより深く理解できると思います。ファイルのアップロードとダウンロードの両方の操作では、アップロードされるファイルのサイズと種類の制限、ダウンロード リンクの侵入防止など、セキュリティとユーザー エクスペリエンスを考慮する必要があることに注意してください。ファイル操作を実装する際には、読者もこれらの詳細に注意してください。
以上がPHP 入門: ファイルのアップロードとダウンロードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。