PHP を使用して簡単なファイルのアップロードおよびダウンロード関数を作成する方法
インターネット技術の発展に伴い、ファイルのアップロードおよびダウンロード機能は多くの Web サイトにとって不可欠な機能になりました。 。単純なファイルのアップロードおよびダウンロード関数を作成することで、ユーザーは簡単にファイルをアップロードおよびダウンロードできるようになり、ユーザー エクスペリエンスが向上します。この記事では、PHP を使用して簡単なファイルのアップロードおよびダウンロード関数を作成する方法を紹介し、具体的なコード例を示します。
1. ファイルアップロード機能の実装
フォームの作成
まず、HTML ページ上にユーザーがファイルをアップロードするためのフォームを作成します。フォームのコードは以下の通りです。
<form action="upload.php" method="post" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" value="上传"> </form>
このうち、formタグのaction
属性では、フォーム送信後の処理スクリプトをupload.php##として指定しています。 #、
method 属性はフォーム送信方法を POST として指定し、
enctype 属性はファイルのアップロードをサポートするためにフォーム エンコード タイプを
multipart/form-data として指定します。 。
upload.php ファイルに、ファイルのアップロードを処理する PHP コードを作成します。コードは次のとおりです。
<?php $targetDir = "uploads/"; // 上传文件存储目录 $targetFile = $targetDir . basename($_FILES["file"]["name"]); // 上传文件的路径 // 检查文件类型 $fileType = strtolower(pathinfo($targetFile, PATHINFO_EXTENSION)); $allowedTypes = array("jpg", "jpeg", "png", "gif"); if (!in_array($fileType, $allowedTypes)) { echo "只允许上传图片文件!"; exit; } // 将文件从临时目录移动到指定目录 if (move_uploaded_file($_FILES["file"]["tmp_name"], $targetFile)) { echo "文件上传成功!"; } else { echo "文件上传失败!"; } ?>上記のコードでは、ファイルのアップロード後のストレージ ディレクトリを指定するために変数
$targetDir が最初に定義され、次に
basename( ) 関数が使用されます。アップロードされたファイルのパスを取得し、
strto lower() 関数を使用してファイルの種類を小文字に変換し、
pathinfo() 関数を使用して取得します。ファイルの拡張子を指定してから、そのファイル拡張子がタイプの範囲内で許可されているかどうかを確認してください。ファイルの種類が要件を満たしていない場合は、プロンプトメッセージが出力され、プログラムが終了します。ファイル タイプが要件を満たしている場合は、
move_uploaded_file() 関数を使用して、ファイルを一時ディレクトリから指定されたディレクトリに移動します。
まず、利用可能なファイルのリストを表示する必要があります。ページからダウンロードできます。コードは次のとおりです。
<?php $files = glob("uploads/*"); // 获取上传文件的列表 foreach ($files as $file) { $fileName = basename($file); echo "<a href='download.php?file={$fileName}'>{$fileName}</a><br>"; } ?>上記のコードでは、
glob() 関数を使用してアップロードされたファイルのリストを取得し、次に
basename() 関数を使用します。関数を使用してファイル名を取得し、最後に
echo を使用してファイルのリストを出力し、各ファイルのダウンロード リンクを生成します。
download.php ファイルに、ファイルをダウンロードするための PHP コードを記述します。コードは次のとおりです。
<?php $fileName = $_GET["file"]; // 获取要下载的文件名 $filePath = "uploads/" . $fileName; // 要下载的文件路径 if (file_exists($filePath)) { header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename={$fileName}"); readfile($filePath); } else { echo "文件不存在!"; } ?>上記のコードでは、最初に
$_GET スーパー グローバル配列を使用してダウンロードするファイル名を取得し、次にファイルのパスを取得します。ファイル名に基づいて結合されます。次に、
file_exists() 関数を使用してファイルが存在するかどうかを確認し、ファイルが存在する場合は、ブラウザがファイルを添付ファイルとしてダウンロードするように HTTP ヘッダー情報を設定し、
readfile を使用します。 ()関数 to ブラウザにファイルを出力します。ファイルが存在しない場合はプロンプトメッセージが出力されます。
以上がPHP 経由で簡単なファイルのアップロードおよびダウンロード関数を作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。