根据文件夹中的图像向数据库添加行

时间:2010-12-21 14:56:07

标签: php mysql

这是我之前提到的关于清理我的数据库的问题,您可以在此处看到:Remove row from database if image not on server

我有一个mysql数据库,其中包含以下格式的表:

ID:1
日期:2010-12-19
图片来源:5d61240f-7aca-d34b-19-12-10-15-36.jpg
文字说明:圣诞快乐

我现在想要创建一个php脚本来检查我服务器上的/ gallery /文件夹,并且对于我的数据库中尚未列出的库文件夹中的每个图像,我想创建一个带有文件名的新行图像列。 ID是顺序的,日期需要是使用filetime()的文件的最后修改日期,并且需要采用YYYY-MM-DD格式。对于我们添加的这些文件,标题列可以为空白。任何有关脚本的帮助都将非常感激。

谢谢!

2 个答案:

答案 0 :(得分:2)

// list of allowed image extensions
$image_exts=array('png','jpg','ico','gif','bmp'); // ...

// function to store image file to db
function db_add_image($image){
    $name=mysql_real_escape_string(basename($image));
    mysql_query("INSERT INTO `table` (`ID`,`Date`,`Image`,`Caption`)
        VALUES (NULL,'".date('Y-m-d',filemtime($image))."','".$name."','')
        WHERE NOT EXISTS (SELECT `ID` FROM `table` WHERE `Image`='".$name."')");
}

// loop in your folder (glob returns an array of files matching a wildcard)
foreach(glob('gallery/*.*') as $file)
    // if the file is an image...
    if(in_array(strtolower(pathinfo($file,PATHINFO_EXTENSION)),$image_exts))
        // add image to database
        db_add_image($file);

安全,清洁,评论并准备好发货。总共20美元,请在柜台付款。 :d

编辑:感谢下面的两个人,两个都是+1。

答案 1 :(得分:-1)

if (!empty($_FILES["photo_name"]["name"]) && file_exists($_FILES["photo_name"]["tmp_name"]))
// Image is empty
// photo_name is image box name
{
    if (strtolower($_FILES["photo_name".$i]["type"])!="image/jpg" && strtolower($_FILES["photo_name".$i]["type"])!="image/pjpeg" && strtolower($_FILES["photo_name".$i]["type"])!="image/jpeg")  //Image is not jpg or gif 
    {
        $_MSG[] = " The Image Must be JPG/JPEG.";
        $error = 1;     
    }
}

if (empty($error)) 
{
    if (!empty($_FILES["photo_name"]["name"]) && file_exists($_FILES["photo_name"]["tmp_name"])) // Image is exist
    {   
        if(!$_POST["hidImage"]) 
        {
            $original = rand(1,9).date("Hismdy").".jpg"; //Make file name as timestampe
            $_POST["hidImage"]=$original;   
        }
        else
            $original = $_POST["hidImage"]; 

        chmod($_DIR['inc']['regi_images'],0777); 

        //regi_images is folder name
        $image = $_FILES["photo_name"]["tmp_name"];         
        $arr = getimagesize($image);

        if($arr[0]>400) 
        {
            setsize("400x400");
            // Size Width x Height
            resize($newwidth,$newheight,$_DIR['inc']['regi_images'].$original);
        } else 
            copy($image,$_DIR['inc']['regi_images'].$original);

        chmod($_DIR['inc']['regi_images'],0755);
    } else
        $original = $_POST["hidImage"];
}