upload image to mysql database php

后端 未结 1 567
甜味超标
甜味超标 2021-01-29 10:59

i want to upload an image to php database, my php code



        
相关标签:
1条回答
  • 2021-01-29 11:42

    Here's a script I modified to work with your table structure.

    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>';
    
    }
    

    }

    You can call the function like this:

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

    Please note that this script IS NOT COMPLETE as it needs proper validation, escaping, etc.

    Good luck I hope this works out for you and I look forward to hearing feedback otherwise.

    0 讨论(0)
提交回复
热议问题