CI 묻고 답하기

제목 업로드시 파일명 시간으로 변경
카테고리 CI 2, 3
글쓴이 개미개발자 작성시각 2021/04/07 15:36:26
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 11291   RSS

안녕하세요 저번에 업로드 시 파일명을 db에 저장하는 방법을 물어봤던 사람입니다.

그 부분은 해결했고, 이제는 그 파일명을 현재시간 (ex 202104071535) 으로 변경하여 서버에도 그 변경된 이름으로 저장하고 db에도 저장하는 방법에서 해매는 중입니다.

어려움을 겪고 있으니 직접적으로 알려주시면 정말 감사하겠습니다

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 {

            $config = array(
                'upload_path' => './static/user',
                'allowed_types' => 'gif|jpg|png',
                'overwrite'=> 'false',
                'max_size' => '10000M',
                'max_width' => '0',
                'max_height' => '0'
            );

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

            $files = $_FILES;

            $photos = array();

            foreach ($files['photo']['name'] as $key => $photo) {
                $_FILES['photo[]']['name'] = $files['photo']['name'][$key];
                $_FILES['photo[]']['type'] = $files['photo']['type'][$key];
                $_FILES['photo[]']['tmp_name'] = $files['photo']['tmp_name'][$key];
                $_FILES['photo[]']['error'] = $files['photo']['error'][$key];
                $_FILES['photo[]']['size'] = $files['photo']['size'][$key];

                //$fn=date("YmdHis");
                //move_uploaded_file($_FILES['photo[]']['tmp_name'],$fn);

                $fileName = $photo;

                $photos[] = $fileName;

                $config['file_name'] = $fileName;

                $this->upload->initialize($config);

                if ($this->upload->do_upload('photo[]')) {
                    $this->upload->data();
                } else {
                    $error = array('error'=> $this->upload->display_errors());
                    return false;
                }
            }

            $photo = $photos[0];
            $photo_1 = $photos[1];
            $photo_2 = $photos[2];

            $topic_id = $this->topic_model->add($this->input->post('title'), $this->input->post('description'),
                $this->input->post('main_text'), $this->input->post('sub_text'), $photo, $photo_1, $photo_2);


            $this->load->helper('url');
            header('Location: /ant/get/' . $topic_id);
        }
    }

 

 다음글 코드 이그나이터에서 홈페이지를 제작중에 있는데 외부에서... (2)
 이전글 세션 클래스를 활용하여 세션데이터를 세션테이블로 저장 ... (2)

댓글

변종원(웅파) / 2021/04/07 15:59:12 / 추천 0

$photo, $photo_1, $photo_2 에 각각 파일명이 담긴거 맞나요?

매뉴얼 보시면 업로드할때 파일명을 지정할 수 있게 되어 있습니다. file_name을 원하는 이름으로 바꾸면 서버에 그 이름으로 저장됩니다. db에 그 이름을 그대로 사용해서 저장하시면 됩니다.

http://www.ciboard.co.kr/user_guide/kr/libraries/file_uploading.html#preferences  에서 file_name 부분 참고하세요.

개미개발자 / 2021/04/07 16:24:37 / 추천 0
네 파일명이 그대로 담겨서 db에 저장되고 그 파일명만 수정하면 되는 상황입니다