0

我正在使用 Codeigniter 并有一个用于博客条目的表单和图像上传工具,这些工具可以正常工作,除非我在表单上点击提交时会在数据库中创建两个条目。数据被发布到一个条目,图像被发布到另一个条目。我将图像文件名保存到数据库并对其执行一些图像操作,以便可以使用各个博客文章调用它。CRUD 功能和图像上传都来自我一直关注的两个不同的教程,我只是无法让它们一起工作。任何帮助/见解表示赞赏。

控制器:blog.php

function get_data_from_post() {

    $data['blog_title'] = $this->input->post('blog_title', TRUE);
    $data['blog_date'] = $this->input->post('blog_date', TRUE);
    $data['blog_author'] = $this->input->post('blog_author', TRUE);
    $data['blog_categories'] = $this->input->post('blog_categories', TRUE);
    $data['blog_content'] = $this->input->post('blog_content', TRUE);
    $data['blog_summery'] = $this->input->post('blog_summery', TRUE);
    $data['blog_quote'] = $this->input->post('blog_quote', TRUE);

    return $data;

}
function get_data_from_db($update_id) {
    $blog_query = $this->get_where($update_id);
    foreach ($blog_query->result() as $row) {
        $data['blog_title'] = $row->blog_title;
        $data['blog_date'] = $row->blog_date;
        $data['blog_author'] = $row->blog_author;
        $data['blog_categories'] = $row->blog_categories;
        $data['blog_content'] = $row->blog_content;
        $data['blog_summery'] = $row->blog_summery;
        $data['blog_quote'] = $row->blog_quote;

    }
    if (!isset($data)) {
        $data = "";
    }
    return $data;

}

function create() {

    $update_id = $this->uri->segment(3);
    $submit = $this->input->post('submit', TRUE);

     if ($submit == "Submit") {
        //person has submitted the form
        $data = $this->get_data_from_post();
     } else {

        if (is_numeric($update_id)) {
            $data = $this->get_data_from_db($update_id);
        }
    }

     if (!isset($data)) {
        $data = $this->get_data_from_post();
    }

     $data['update_id'] = $update_id;

    $data['view_file'] = "create";
    $this->load->module('templates');
    $this->templates->admin_homePage_header($data);
}

function submit() {

     $this->load->library('form_validation');

    $this->form_validation->set_rules('blog_title', 'Blog Title',  'required|xss_clean');
    $this->form_validation->set_rules('blog_content', 'Page Content', 'required|xss_clean');

     if ($this->form_validation->run($this) == FALSE) {
         $this->create();
     } else {
        $image_data = $this->do_upload();
        $data = $this->get_data_from_post();

         $update_id = $this->uri->segment(3);
    if (is_numeric($update_id)) {

        $this->_update($update_id, $data);
    } else {

        $this->_insert($data);
    }

         redirect('blog/manage');

    }
}



function do_upload() {

    // Upload image

    $config['upload_path'] = './images/';
    $config['allowed_types'] = 'gif|jpg|png';
    //      $config['max_size'] = '100';
     //     $config['max_width']  = '1024';
    //      $config['max_height']  = '768';

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

    if (!$this->upload->do_upload()) {
         $error = array('error' => $this->upload->display_errors());

         // $this->load->view('upload_form', $error);
    } else {
        $upload_data = $this->upload->data();
        $data_ary = array(

             'blog_image' => $upload_data['file_name'],
        );

        $this->load->database();
        $this->db->insert('blog', $data_ary);

        $data = array('upload_data' => $this->upload->data());

         // Create thumb
        $image_data = $this->upload->data();

        $config['source_image'] = $image_data['full_path'];
        $config['new_image'] = './images/thumbs/';
        $config['maintain_ratio'] = TRUE;
        $config['width'] = 640;
        $config['height'] = 360;

        $this->load->library('image_lib', $config);
         $this->image_lib->resize();
    }

}

视图文件:create.php

echo form_open_multipart('blog/submit/' . $update_id);
$data = array(
    'name' => 'blog_title',
    'id' => 'blog_title',
    'value' => $blog_title,);
echo form_input($data);
echo form_upload('userfile');
echo form_submit('submit', 'Submit');
4

0 回答 0