現代のインターネット時代では、ギャラリー機能は多くの Web サイトの標準機能となっており、強力なプログラミング言語である PHP もこの機能を実装するためのさまざまな方法を提供しています。
この記事では、PHP を使用して、写真をアップロード、閲覧、削除する簡単なオンライン ギャラリー機能を実装する方法を紹介します。
1. 準備
PHP を使用してオンライン ギャラリー機能を実装する前に、いくつかの基本的な作業を準備する必要があります:
1. PHP と MySQL をインストールします。
2. PHP ファイルのアップロードをサポートするサーバーを準備します。
3. 次のコマンドを使用して、ホスト上に新しい MySQL ユーザーとパスワードを作成します:
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'user_password';
4. ギャラリー情報を保存するための新しい MySQL データベースとテーブルを作成します。次のコマンドを使用できます:
CREATE DATABASE mydb
;
CREATE TABLE images
(
id
int (11 ) NOT NULL AUTO_INCREMENT,
name
varchar(255) NOT NULL,
path
varchar(255) NOT NULL,
uploaded_time
datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
5. アップロード画像を保存する新しいフォルダーを作成します。 。
2. アップロード機能の実装
まず、ユーザーが画像ファイルをアップロードできるようにする HTML フォームを作成する必要があります。ファイルをアップロードするには、このフォームに enctype="multipart/form-data" 属性が必要です。以下はフォーム コードです:
このフォームでは、ファイル アップロード要素を定義し、ネイティブ HTML に「ファイルのアップロード」ボタンを実装します。ユーザーがこのボタンをクリックすると、フォームはファイルをサーバー上のupload.phpファイルにアップロードします。
次に、アップロードされたファイルの処理と保存を完了するために、upload.php ファイルのコードを記述する必要があります。コードは次のとおりです:
$target_dir = "uploads/";
$target_file = $target_dir .basename($_FILES"file");
$uploadOk = 1 ;
$imageFileType = strto lower(pathinfo($target_file,PATHINFO_EXTENSION));
// ファイルがイメージ タイプであるかどうかを確認します
if(isset($_POST["submit"] )) {
$check = getimagesize($_FILES["file"]["tmp_name"]); if($check !== false) { echo "文件是一个图像," . $check["mime"] . "."; $uploadOk = 1; } else { echo "文件不是一个图像。"; $uploadOk = 0; }
}
// ファイルが既に存在するかどうかを確認します
if (file_exists($target_file)) {
echo "抱歉,文件已经存在。"; $uploadOk = 0;
}
# #// ファイル サイズを確認するif ($_FILES"file" > 500000) {
echo "抱歉,您的文件太大。"; $uploadOk = 0;
if($imageFileType ! = "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "抱歉,只能上传JPG、JPEG、PNG和GIF格式的文件。"; $uploadOk = 0;
if ($uploadOk == 0) {
echo "抱歉,您的文件未能上传。";
} else {
if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) { echo "文件" . basename( $_FILES["file"]["name"]). "上传成功。"; // 将文件路径、名称和上传时间保存到数据库中 $img_name = $_FILES["file"]["name"]; $img_path = $target_file; $sql = "INSERT INTO images (name, path) VALUES ('$img_name', '$img_path')"; $result = mysqli_query($conn, $sql); } else { echo "抱歉,发生了错误,您的文件无法上传。"; }
?>
while($row = mysqli_fetch_assoc($result)) {
$img_id = $row["id"]; $img_name = $row["name"]; $img_path = $row["path"]; echo '<div class="image">'; echo '<a href="view.php?id=' . $img_id . '"><img src="' . $img_path . '" title="' . $img_name . '"></a>'; echo '</div>';
?>
$id = $_GET["delete"]; // 从数据库中删除记录 $sql = "DELETE FROM images WHERE id='$id'"; $result = mysqli_query($conn, $sql); // 删除本地文件 $info_query = "SELECT path FROM images WHERE id='$id'"; $info_result = mysqli_query($conn, $info_query); $row = mysqli_fetch_assoc($info_result); unlink($row["path"]); // 将用户重定向到基页面 header("location: index.php");
?> ;
以上がPHPでオンラインギャラリー機能を実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。