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

mysqlデータベースphpに画像をアップロードする

    これが、テーブル構造で機能するように変更したスクリプトです。

    function addImageToDB($imageArray, $title = '', $subject = '', $visible = 0) {
    
    $allowedExts = array("gif","jpeg","jpg","JPG","png","PNG");
    $extension = end(explode(".", $imageArray["name"]));
    
    if (
        (($imageArray["type"] == "image/gif") // is image type acceptable?
            || ($imageArray["type"] == "image/jpeg")
            || ($imageArray["type"] == "image/jpg")
            || ($imageArray["type"] == "image/png")
        )
        && ($imageArray["size"] < 1048576) // set maximum image size
        && in_array($extension, $allowedExts) // is image file extension in $allowedExts?
    ) {
    
        if ($imageArray["error"] > 0) { // check uploaded image for errors
            echo $imageArray['error'];
        } else {
    
            $tempImage = $imageArray['tmp_name'];
            $fp = fopen($tempImage, 'r');
            $image = fread($fp, filesize($tempImage));
            $image = addslashes($image);
            fclose($fp);
    
            $queryAddImageToDB = "INSERT INTO image (
                title,
                subject,
                image,
                visible
            ) VALUES (
                '$title'
                '$subject',
                '$image',
                '$visible'
            )";
    
            mysql_query ($queryAddImageToDB) or die ('queryAddImageToDB failed');
            $imageID = mysql_insert_id();
    
            return $imageID;
    
        }
    } else {
    
        echo 'IMAGE UPLOAD ERROR: The image ie either too large or the file format is unacceptable.';
    
        echo '<pre>';
            print_r($imageArray); // display image array for debugging
        echo '</pre>';
    
    }
    
    ';}

    }

    次のように関数を呼び出すことができます:

    $imageArray = $_FILES['image'];
    $title = $_POST['title'];
    $subject = $_POST['subject'];
    $visible = 1;
    addImageToDB($imageArray, $title, $subject, $visible);
    

    このスクリプトは、適切な検証やエスケープなどが必要なため、完全ではないことに注意してください。

    幸運を祈ります。これがうまくいくことを願っています。それ以外の場合はフィードバックをお待ちしています。




    1. Oracle Pl / SQL:XMLTYPEノードをループします

    2. SQL ServerManagementStudioの使用方法について学ぶ

    3. 整数列のデフォルト値を設定するSQLite

    4. mysqlphp検索で検索テキストを強調表示します