PHPでオンラインギャラリー機能を実装

PHPz
リリース: 2023-06-22 17:54:02
オリジナル
1830 人が閲覧しました

現代のインターネット時代では、ギャラリー機能は多くの 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" 属性が必要です。以下はフォーム コードです:

<input type="file" name="file" id="file">
<input type="submit" name="submit" value="上传">
ログイン後にコピー

このフォームでは、ファイル アップロード要素を定義し、ネイティブ 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 "抱歉,发生了错误,您的文件无法上传。";
}
ログイン後にコピー

}

?>

コードは最初に、ファイルが画像であるかどうか、ファイルが既に存在するかどうか、ファイル サイズの制限、許可されているファイル形式の確認など、いくつかのチェックを実行します。これらのチェックがすべて合格すると、ファイルを指定したディレクトリに移動し、参照および削除操作のために一部の情報をデータベースに保存できます。

3. 閲覧機能の実装

次のステップでは、アップロードされた画像を閲覧する機能を実装する必要があります。そのためにはデータベースに保存されている画像情報を読み込んでWebページに表示する必要があります。

以下はコードです:

// データベースからすべての画像のパスを取得します
$sql = "SELECT id, name, path FROM画像";
$result = mysqli_query($conn, $sql);

// パスと名前をループして HTML

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>';
ログイン後にコピー

}

?>

4. 削除機能の実装

最後のステップは、画像を削除する機能を追加することです。ユーザーがアップロードした画像が不要になった場合、ギャラリーから画像を削除することを選択できます。

以下はコードです:

if(isset($_GET["delete"])) {
$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");
ログイン後にコピー
}

?> ;

このコードは、イメージ ID に基づいてデータベースからレコードを削除し、指定されたローカル ファイルを削除します。その後、ユーザーを基本ギャラリー ページにリダイレクトします。

概要

この記事の導入部を通じて、PHP を使用して、写真のアップロード、参照、削除などのオンライン ギャラリー機能を実装する方法を理解できます。

入力検証、ファイル サイズ制限、ファイル タイプ検証など、コードに含まれるいくつかの重要な詳細はすべて、セキュリティと整合性を確保するために設定されていることに注意してください。実際のアプリケーションでは、これらのコードは必要に応じて変更および拡張できます。

以上がPHPでオンラインギャラリー機能を実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート