im пытается загрузить изображение с заголовком и описанием вместе с загрузкой изображения. Мои загрузки изображений и текстовые входы работают отдельно, а текст и путь изображения также вставляются в БД, но я все еще не могу понять, как объединить оба
Я использовал руководства, приведенные в http://codeigniter.com/user_guide/libraries/file_uploading.html.
function do_upload() { $config['upload_path'] = './uploads/'; $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 { $data = array('upload_data' => $this->upload->data()); $this->load->view('upload_success', $data); } }
может кто-нибудь сказать мне, как я могу вставить некоторые текстовые поля вместе с формой загрузки изображения в базу данных sql?
В принципе, просто поместите ввод изображения в ту же форму, например:
// view echo form_open_multipart('controller_name/do_upload'); echo form_input("title", ""); echo form_input("description", ""); echo form_upload("userfile"); echo form_close
И добавьте в контроллер сообщение POST:
// controller function do_upload() { $config['upload_path'] = './uploads/'; $config['allowed_types'] = 'gif|jpg|png'; $config['max_size'] = '100'; $config['max_width'] = '1024'; $config['max_height'] = '768'; $this->load->library('upload', $config); // validate the POST data // http://codeigniter.com/user_guide/libraries/form_validation.html $this->form_validation->set_rules('title', 'Title', 'trim|required'); $this->form_validation->set_rules('description', 'Description', 'trim|required') if ($this->form_validation->run() == FALSE) { // failed validation $this->load->view('myform'); // quit here return false; } if ( ! $this->upload->do_upload()) { // no file uploaded or failed upload $error = array('error' => $this->upload->display_errors()); $this->load->view('upload_form', $error); } else { // success $data = array('upload_data' => $this->upload->data()); $title = $this->input->post('title'); $description = $this->input->post('description'); // a model that deals with your image data (you have to create this) $this->your_upload_model->add($title, $description, $data["file_name"]); $this->load->view('upload_success', $data); } }
Вам также потребуется создать подходящую модель для ввода данных в базу данных.