sql >> データベース >  >> RDS >> Mysql

PHPとMySQLを使用して、ギャラリーに画像を追加します

    画像に関する情報と画像のファイル名を含むMySQLテーブルが必要です:

    CREATE TABLE images (
        id int(3) not null auto_increment,
        data_type varchar(128) not null,
        title varchar(256) not null,
        file_name varchar(64) not null,
        primary key(id)
    )
    

    そして、次のような画像アップロードフォームを作成する必要があります:

    <form enctype="multipart/form-data" action="uploader.php" method="POST">
        Data type: <input type="text" name="dataType"><br>
        Title: <input type="text" name="title"><br>
        Image to upload: <input type="file" name="image"><br>
        <input type="submit" value="Upload">
    </form>
    

    そして、アップロードされたファイルを処理し、データベースエントリを追加するためのPHPスクリプト:

    uploader.php

    <?php
    $dataType = mysql_real_escape_string($_POST["dataType"]);
    $title = mysql_real_escape_string($_POST["title"]);
    $fileName = basename($_FILES["image"]["name"]);
    $target_path = "images/gallery/".$fileName);
    if (file_exists($target_path))
    {
        echo "An image with that file name already exists.";
    }
    elseif (move_uploaded_file($_FILES["image"]["tmp_name"], $target_path))
    {
        // The file is in the images/gallery folder. Insert record into database by
        // executing the following query:
        // INSERT INTO images
        // (data_type, title, file_name) VALUES('$dataType','$title','$fileName')
        echo "The image was successfully uploaded and added to the gallery :)";
    }
    else
    {
        echo "There was an error uploading the file, please try again!";
    }
    ?>
    

    このスクリプトは安全ではないことに注意してください。たとえば、.phpファイルをサーバーにアップロードできるようになります。このようなものが必要になります:

    $allowed_extensions = array("jpg","jpeg","png","gif");
    $extension = pathinfo($fileName, PATHINFO_EXTENSION);
    if (!in_array($extension,$allowed_extensions))
    {
        die("Only these file types are allowed: jpg, png, gif");
    }
    

    次に、ギャラリーページで、データベース内の画像をループします。

    <?php
    $images = mysql_query("SELECT * FROM images");
    while ($image=mysql_fetch_assoc($images))
    {
        ?>
        <li data-id="id-<?=$image["id"] ?>" data-type="<?=$image["data_type"] ?>">
        <div class="column grid_3">
        <a class="fancybox" rel="<?=$image["data_type"] ?>" href="images/gallery/<?=$image["file_name"] ?>" title="<?=$image["title"] ?>">
        <img src="images/gallery/<?=$image["file_name"] ?>" alt="<?=$image["title"] ?>" class="max-img-border"></a>
        <h5><?=$image["title"] ?></h5>
        </div>  
        </li>
        <?php
    }
    ?>
    

    アップロードフォームは保護する必要があり、適切な人だけが利用できることに注意してください。スパマーがランダムなファイルをサーバーにアップロードすることは望ましくありません。




    1. ハイブhadoopからsqoopまでのデータをmysqlに保存しますか?

    2. 単一のSQLServerステートメントはアトミックで一貫性がありますか?

    3. OracleのDBMS_ASSERTに相当するSQLServerとは何ですか?

    4. HibernateでOracleDateを使用する場合の日付/時刻のJavaタイプ