删除图片 - >笨

时间:2011-04-13 21:15:24

标签: php image codeigniter

我已经重新提出问题以帮助我获得具体答案,对不起,如果我的上一个问题令人困惑:

我在尝试从数据库中删除行时遇到问题,但也包含如何取消链接到不同位置的图像的问题。我无法删除要删除的行或取消链接的图像。

这是我的 - > db structure

我的图片位置为:

fullpath = /includes/uploads/gallery/

thumbpath = /includes/uploads/gallery/thumbs/

理想情况:

我的理想情况是,当点击删除链接时,它将在索引功能中运行该功能,然后使用成功消息重新加载同一页面 - >我没能成功地让他们上班。

我的代码:

型号:

function deleteImage($id,$path){

        $this->db->delete('images', array('id' => $id));

        if($this->db->affected_rows() >= 1) {
            if(unlink($path)
                return TRUE;
            } else{
                return FALSE;
            }
        }    

查看:

    <?php if(is_array($get_images)): ?>

            <?php foreach($get_images as $image): ?>
            <img src ="<?=base_url()?>includes/uploads/gallery/thumbs/<?=$image->thumbpath?>" alt="<?= $image->description?>"> <a href="deleteimage/delete/<?=$image->id?>">Delete</a>
            <?php endforeach; ?>
    <?php endif; ?>

控制器:

   function index() { 
    if(!$this->session->userdata('logged_in')) { 
        redirect('admin/home'); 
    } 
    // Main Page Data 
    $page['get_images'] = $this->image_model->getImages();
    $data['cms_pages'] = $this->navigation_model->getCMSPages();
    $data['title'] = 'Delete Gallery Image'; 
    $data['content'] = $this->load->view('admin/deleteimage',$page,TRUE); 

    $this->load->view('admintemplate', $data);

}

3 个答案:

答案 0 :(得分:2)

如果您正在使用有效记录,那么您正在寻找的是:

$这 - &GT; DB-&GT;删除();

现在从内存开始,如果发生错误,它将仅返回false,因此将不断返回true。但是我们可以使用另一个函数来检查行是否被删除了。

哦,您还需要将要删除的文件的路径传递给函数。


function deleteImage($id,$path) {

$this->db->delete('table', array('id' => $id));

    if($this->db->affected_rows() >= 1){
        if(unlink($path))
        return TRUE;
    } else {
        return FALSE;
    }

}

答案 1 :(得分:2)

function delete_data($record_id)
{
    $query =  $this->db->get_where('projukti_committee',array('record_id' => $record_id));
    if( $query->num_rows() > 0 )
    {
        $row = $query->row();
        $picture = $row->picture;
        unlink(realpath('assets/photo/'.$picture));
        $this->db->delete('projukti_committee', array('record_id' => $record_id));
        return true;
    }
    return false;   
} 

答案 2 :(得分:1)

据推测,您有某种形象ID。

将ID附加到deleteimage/delete URI。

创建一个从表中删除ID的方法,并使用PHP的unlink($path)函数实际删除图像。