Codeigniter 2.1 - 首先上传图像,然后在db中创建图库

时间:2013-03-25 16:06:47

标签: php mysql codeigniter codeigniter-2

我需要一些建议,我该怎么办? 我制作了通过HTML5拖放功能上传图像的脚本,它正在运行。我想创建一个系统,其中用户删除图像以供上传(并且它们被上传),写入图库的名称和描述,并且在点击提交时,需要有一个功能,它将创建图库,给出id并为图像提供该ID并将图像传输到指定的文件夹(图库的名称)。目前我不知道我该怎么做。此外,如果用户决定不创建图库,则需要删除上传的图像(我想这可以通过cron作业完成)。

图库的DB如下:

gallery
    id_gallery
    name
    description
    date_created

gallery_images
    id_image
    gallery_id
    path

1 个答案:

答案 0 :(得分:1)

您无需将文件移动到其他文件夹。只要应用程序可以找到它们,它们的存在并不重要(参见:path)。

您拥有的数据库计划是什么?您显示架构,但提到您不知道如何使用它?

无论如何......如果您在图库表中添加了active字段,则可以在提交时将其标记为有效。

gallery
    id_gallery int
    name text
    description text
    date_created date
    active default 0

gallery_images
    id_image int
    gallery_id int
    path text

如果您在上传第一张图片时(或在某个时间点)实例化图库并为上传的每张图片在gallery_images中插入一行,您可以这样提交:

function submit_gallery($id = NULL, $active = NULL)
{
    if($id AND $active === 1)
    {
        $this->db->where('id', $id);
        $this->db->update('gallery', array('active' => 1));
    }

    //could have a "cancel" button call this. or use a cron job
    elseif($id AND $active === 0)
    {

        $this->db->where('gallery_id', $id);
        $imgs = $this->db->get('gallery_images');

        foreach($imgs->result() as $img)
        {
            //delete the img files
            unlink($img->path);
        }

        $this->db->where('gallery_id', $id);
        $this->db->delete('gallery_images');

    }
}