dousi1875 2016-07-04 12:21
浏览 30

使用unlink CodeIgniter更新图像

I have a problem about "unlink" update.error message after post

Controller

Controller:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Picture_controller extends CI_Controller 
{

    public function index(){
        $result = $this->db->query("SELECT * FROM img");
        $this->load->view('picture/index', array('data'=>$result));
    }

    public function form(){
        $this->load->view('picture/form', array('error' => ''));
    }

    public function edit($id){
        $data = $this->db->query("SELECT * FROM img WHERE id = '{$id}' ");
        $row = $data->row();
        $this->load->view('picture/edit',array('r'=>$row));
    }

    public function do_update(){    
        $id = $this->input->post('id');
        $path = $this->input->post('path');
        if (isset($_FILES['userfile']['name']) && !empty($_FILES['userfile']['name'])) 
        {
            if(unlink('uploads/'.$path))
            {
                $config['upload_path'] = './uploads';
                $config['allowed_types'] = 'gif|jpg|png';
                $config['max_size'] = 20000000;
                $config['max_width'] = 1024;
                $config['max_height'] = 768;
                $config['encrypt_name'] = TRUE;

                //miantso library
                $this->load->library('upload',$config);

                if(!$this->upload->do_upload()) 
                {
                    $error = array('error' => $this->upload->display_errors());
                    $this->load->view('picture/form', $error);
                }
                else
                {
                    $data = $this->upload->data();
                    // var_dump($data);
                    $data_array = array(
                        'file_name' => $data['file_name'],
                        'original_name' => $data['orig_name'],
                        'file_size' => $data['file_size'],
                        'file_ext' => $data['file_ext'],
                        'full_path' => $data['full_path']
                        );
                $this->db->where('id',$id);
                $this->db->update('img',$data_array);
                redirect('Picture_controller/index');
                }
            }
        }
        else
        {
            redirect('Picture_controller/index');
        }
    }

    public function do_upload()
    {

        $config['upload_path'] = './uploads';
        $config['allowed_types'] = 'gif|jpg|png';
        $config['max_size'] = 20000000;
        $config['max_width'] = 1024;
        $config['max_height'] = 768;
        $config['encrypt_name'] = TRUE;


    //miantso library
    $this->load->library('upload',$config);

    if(!$this->upload->do_upload()) 
    {
        $error = array('error' => $this->upload->display_errors());
        $this->load->view('picture/form', $error);
    }
    else
    {
        $data = $this->upload->data();
        // var_dump($data);
        $data_array = array(
            'file_name' => $data['file_name'],
            'original_name' => $data['orig_name'],
            'file_size' => $data['file_size'],
            'file_ext' => $data['file_ext'],
            'full_path' => $data['full_path']
            );
    $this->db->insert('img',$data_array);
    redirect('Picture_controller/index');
    }
}

}
?>

What is wrong? Can you help me please?

  • 写回答

1条回答 默认 最新

  • dou91855 2016-07-04 12:24
    关注

    The$path variable is not defined (I guess $_POST does not have a path key) so the script tries to delete uploads/ (the whole directory).

    评论

报告相同问题?

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度