제목 | ci 파일 업로드 시 파일 명 업로드 관련 문의 | ||
---|---|---|---|
카테고리 | CI 2, 3 | ||
글쓴이 | 개미개발자 | 작성시각 | 2021/04/05 18:23:57 |
|
|||
ci를 사용해서 간단한 파일 및 텍스트 업로드를 구현하려고 하는데 파일이 서버상에 잘 올라가긴 하는데 db상에 올라가질 않네요 ㅠㅠ 시작한 지 얼마 안돼서 너무 어려움을 겪고 있습니다 도움 좀 부탁드릴게요! Controller function add(){ $this->_head(); $this->load->library('form_validation'); $this->form_validation->set_rules('title', '제목', 'required'); $this->form_validation->set_rules('description', '본문', 'required'); $this->form_validation->set_rules('main_text', '메인 텍스트', 'required'); $this->form_validation->set_rules('sub_text', '서브 텍스트', 'required'); if($this->form_validation->run () == FALSE){ $this->load->view('add'); } else{ $topic_id = $this->topic_model->add($this->input->post('title'), $this->input->post('description'), $this->input->post('main_text'), $this->input->post('sub_text'), $this->input->post('photo')); $config['upload_path'] = './static/user'; $config['allowed_types'] = 'gif|jpg|png'; $config['max_size'] = '10000M'; $config['max_width'] = '2048'; $config['max_height'] = '1096'; $this->load->library('upload', $config); $this->upload->initialize($config); if(!$this->upload->do_upload('photo')){ $error = array('error'=> $this->display_errors()); } else { $data = array('upload_data' => $this->upload->data()); $filename = $data['file_name']; $url = '/static/user/'.$filename; } $this->load->helper('url'); header('Location: /ant/get/'.$topic_id); } }
Model function add($title, $description, $main_text, $sub_text, $photo){ $this->db->set('created', 'NOW()', false); $this->db->insert('topic', array( 'title'=>$title, 'description'=>$description, 'main_text'=>$main_text, 'sub_text'=>$sub_text, 'photo'=>$photo )); return $this->db->insert_id(); }
view <div class="form col-6"> <form action="/ant/add" method="post" enctype="multipart/form-data"> <?php echo validation_errors(); ?> <input type="text" name="title" placeholder="제목" required /> <textarea name="description" placeholder="본문" required rows="15"></textarea> <input type="text" name="main_text" placeholder="메인 텍스트" required /> <input type="text" name="sub_text" placeholder="서브 텍스트" required /> <input type="file" name="photo" /> <button type="submit" class="btn btn-success">게시글 추가</button> </form> </div>
|
|||
다음글 | 엔티티 사용법 문제? (5) | ||
이전글 | 같은 소스인데 다른 환경에서 500에러 나는 문제 (6) | ||
프레드윤
/
2021/04/05 18:38:42 /
추천
0
|
변종원(웅파)
/
2021/04/05 18:40:40 /
추천
0
그리고 모델을 호출한 곳이 없습니다. 업로드 성공일 경우 모델의 add()함수를 호출해야 db에 insert 됩니다.
|
개미개발자
/
2021/04/05 22:16:59 /
추천
0
모델 호출을 해줬는데 어떻게 수정하면 될까요 ?ㅠㅠ
|
변종원(웅파)
/
2021/04/06 09:29:08 /
추천
0
개미개발자/ 모델을 호출했고 데이터를 전달했으면 insert가 작동합니다. 어떤게 더 궁금한건가요?
|
개미개발자
/
2021/04/06 09:45:45 /
추천
0
파일명을 전달하기 위해 컨트롤러에서 $topic_id = $this->topic_model->add($this->input->post('title'), $this->input->post('description'), $this->input->post('main_text'), $this->input->post('sub_text'), $this->input->post('photo')); 이 부분을 실행서 파일 명을 post('photo')로 전달하고 싶었는데 function add($title, $description, $main_text, $sub_text, $photo){ $this->db->set('created', 'NOW()', false); $this->db->insert('topic', array( 'title'=>$title, 'description'=>$description, 'main_text'=>$main_text, 'sub_text'=>$sub_text, 'photo'=>$photo )); return $this->db->insert_id(); } 파일명을 전달하기 위해 어떻게 수정해야 할지가 궁금합니다 ㅠ |
변종원(웅파)
/
2021/04/06 10:16:21 /
추천
0
개미개발자/ 파일업로드 매뉴얼 data 부분 참고하세요. http://www.ciboard.co.kr/user_guide/kr/libraries/file_uploading.html#class-reference ci의 내부 라이브러리, 함수 등등은 매뉴얼에 잘 설명되어 있습니다. 작업전에 잘 읽어보시고 작업하시는 것을 추천합니다. |
저건 ci3입니다 ci 4는 다르게 사용합니다.
http://ci4doc.cikorea.net/libraries/uploaded_files.html
저같은 경우는 재활용해서 라이브러리에 추가해서 씁니다.