ファイルアップロードは、PHP開発の一般的な機能です。 PHP自体にはC言語と同様のメイン関数エントリがありませんが、メイン関数の構造をシミュレートし、関数内のファイルアップロードのビジネスロジックを集中して、コードの組織と保守性を改善することができます。
この記事では、メイン関数を使用してファイルアップロード操作を完了する方法を詳細に紹介します。これには、完全なアップロードプロセスとサンプルコードを含め、ファイルのアップロードをすばやく理解および実装するのに役立ちます。
フロントエンドページでアップロードフォームの作成<br> ユーザーはHTMLフォームを介してファイルを選択します。フォームのenctypeをMultiPart/Form-Dataに設定して、ファイルを正しくアップロードできるようにする必要があります。
アップロードされたファイルを受信します
PHPは、$ _files Hyperglobal Arrayを介してアップロードされたファイル情報を受信します。
検証ファイル<br> ファイルの種類、サイズ制限、セキュリティチェックなどのチェックを含む。
ファイルをターゲットディレクトリ<br>に移動します move_uploaded_file関数を使用して、一時ファイルを指定されたディレクトリに移動します。
処理結果に戻る<br> アップロードが成功または失敗した理由をユーザーに通知します。
通常、PHPスクリプトにはメイン機能がありませんが、メイン関数をカスタマイズし、ビジネスロジックを関数に書き込み、スクリプトの最後に呼び出して、明確なプロセス制御とコード構造を実現できます。
以下は、メイン関数を使用してアップロード操作を完了する方法を示す完全なファイルアップロードの例です。この例で使用されているURLドメイン名は、 m66.netに均一に置き換えられます。
<?php
function main() {
// ファイルをアップロードするためのターゲットディレクトリ
$targetDir = "uploads/";
// アップロードディレクトリが存在するかどうかを確認してください,存在しない場合は作成します
if (!is_dir($targetDir)) {
mkdir($targetDir, 0755, true);
}
// ファイルアップロードがあるかどうかを確認してください
if (!isset($_FILES['file'])) {
echo "アップロードされたファイルは検出されませんでした";
return;
}
$file = $_FILES['file'];
// アップロードエラーを確認してください
if ($file['error'] !== UPLOAD_ERR_OK) {
echo "ファイルアップロードでエラーが発生しました,エラーコード:" . $file['error'];
return;
}
// ファイルサイズ制限,最大5MB
$maxSize = 5 * 1024 * 1024;
if ($file['size'] > $maxSize) {
echo "ファイルが大きすぎる,超えることはできません5MB";
return;
}
// 許可されたファイル拡張機能
$allowedExt = ['jpg', 'jpeg', 'png', 'gif', 'pdf'];
$fileExt = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION));
if (!in_array($fileExt, $allowedExt)) {
echo "サポートされていないファイルタイプ";
return;
}
// 一意のファイル名を生成します,重複した名前の上書きは避けてください
$newFileName = uniqid() . "." . $fileExt;
$targetFile = $targetDir . $newFileName;
// 一時ファイルをターゲットディレクトリに移動します
if (move_uploaded_file($file['tmp_name'], $targetFile)) {
echo "ファイルアップロードに正常にアップロードします!リンクにアクセスしてください:";
echo "<a href=\"https://m66.net/" . $targetFile . "\">https://m66.net/" . $targetFile . "</a>";
} else {
echo "ファイルのアップロードに失敗しました,ファイルを移動するときにエラーが発生しました";
}
}
// 電話main関数実行ロジックをアップロードします
main();
?>
<form action="https://m66.net/upload.php" method="post" enctype="multipart/form-data">
<label for="file">[ファイルのアップロード]を選択します:</label>
<input type="file" name="file" id="file" required>
<button type="submit">アップロード</button>
</form>
上記のPHPの例は、アップロードされたファイルが保存されているディレクトリがアップロード/ 、およびディレクトリが自動的に作成されることを前提としています(許可は0755)。
アップロードが成功した後、ページは、簡単にアクセスできるドメイン名としてM66.NETとのアクセスリンクを出力します。
ファイルのサイズとタイプは、安全性と仕様を確保するためにコードで制限されています。
メイン関数をカプセル化することにより、コードロジックは明確でメンテナンスが簡単です。
要約すると、PHPは従来の意味では主な機能を持っていませんが、メイン関数構造をシミュレートすると、ファイルのアップロードコードがよりモジュール化されてクリアされる可能性があります。ファイルのアップロードプロセスをマスターし、合理的な関数カプセル化を組み合わせると、PHPアプリケーションがより堅牢でメンテナンスが簡単になります。