PHP での画像のアップロードは一般的なタスクです。ただし、アップロード後に保存された画像の名前は、希望どおりではない可能性があり、直感的または十分に説明的ではない可能性があります。多くの場合、画像の内容をより適切に説明し、管理を容易にするために、アップロードされた画像の名前を変更できるようにしたいと考えています。ここでは、PHP を使用して画像をアップロードした後に名前を変更する方法を紹介します。
まず、アップロードに関する基本を理解する必要があります。 PHP は、このタスクの実行を容易にするために、ファイルのアップロードに関連する多くの関数とオプションを提供します。このうち、最も基本的なものは、$_FILES
スーパー グローバル変数を使用して、アップロードされたファイルの情報を取得する方法です。 $_FILES
ファイル名、ファイル サイズ、ファイル タイプなどの一連の情報が含まれます。アップロード後に保存されたファイルについては、PHP はサーバー上の一時フォルダーに一時的に保存します。この一時フォルダーのパスは、$_FILES['userfile']['tmp_name']
を使用して取得できます。次に、アップロードしたファイルを保存する場所に移動する必要があります。これは、move_uploaded_file()
関数を使用して実行できます。コードは次のとおりです:
<?php $target_dir = "uploads/"; // 上传文件保存目录 $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]); // 上传后的文件名 $uploadOk = 1; // 上传状态标识 // 检查文件是否为真正的图片 if(isset($_POST["submit"])) { $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]); if($check !== false) { echo "文件是一个真正的图片 - " . $check["mime"] . "."; $uploadOk = 1; } else { echo "文件不是一个真正的图片。"; $uploadOk = 0; } } // 检查文件是否已经存在 if (file_exists($target_file)) { echo "文件已经存在。"; $uploadOk = 0; } // 检查文件大小限制 if ($_FILES["fileToUpload"]["size"] > 500000) { echo "文件太大,请上传小于 500KB 的文件。"; $uploadOk = 0; } // 允许上传的图片格式 $allowedTypes = array("jpg", "jpeg", "gif", "png"); $imageFileType = strtolower(pathinfo($target_file, PATHINFO_EXTENSION)); if(!in_array($imageFileType, $allowedTypes)) { echo "只允许上传 JPG, JPEG, GIF 或 PNG 文件格式。"; $uploadOk = 0; } // 检查 $uploadOk 标识 if ($uploadOk == 0) { echo "文件没有被上传。"; // 如果通过所有检查,则将文件移动到目标目录 } else { if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) { echo "文件 ". basename( $_FILES["fileToUpload"]["name"]). " 文件上传成功。"; } else { echo "发生了一个错误,文件没有被上传。"; } } ?>
上記のコードでは、アップロードされたファイルが保存されるディレクトリを指定するために $target_dir
変数を設定します。同時に basename()
関数 アップロードされたファイルのファイル名を取得し、それを $target_dir
に追加して、アップロードされたファイルの完全なパスを形成します。次に、アップロードされたファイルに対して、ファイル タイプ、ファイル サイズなどの一連のチェックを実行します。最後に、ファイルがすべてのチェックに合格した場合、ファイルは move_uploaded_file()
関数を通じて一時フォルダーからターゲット ディレクトリに移動されます。
次に、アップロードされたファイル名を希望の名前に変更する必要があります。以下は、アップロードされたファイル名を現在のタイムスタンプに変更する簡単な例です。
<?php $newFileName = time() . '.' . $imageFileType; $destination = $target_dir . $newFileName; if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $destination)) { echo "文件上传成功,新的文件名是: " . $newFileName ; } else { echo "文件上传失败!" ; } ?>
上記のコードでは、time()
関数を使用して現在のタイムスタンプを生成し、渡されたファイル拡張子と連結して新しいファイル名を作成します。次に、move_uploaded_file()
関数を使用して、新しいファイル名をターゲット ディレクトリに移動します。
タイムスタンプの使用に加えて、アップロードするユーザーのユーザー名や元のファイル名を使用するなど、他の方法で新しいファイル名を生成することもできます。これは、いくつかの PHP 文字列とファイル処理関数だけを使用して実現されます。
概要
PHP では、move_uploaded_file()
関数を使用して、アップロードされたファイルを一時フォルダーからターゲット ディレクトリに移動し、さまざまなメソッドを使用して、アップロードしたファイル名が任意の名前に変更されます。これは、アップロードされたファイルを管理および識別する必要があるアプリケーションにとって非常に重要なタスクです。
以上がPHP を使用して画像をアップロードした後に名前を変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。