2010-06-25 7 views
2

Codeigniter를 사용하고 있으며 여러 파일을 데이터베이스에 업로드하려고합니다. 파일은 하나의 필드에 대해 여러 파일이 아닌 별도의 필드입니다. http://codeigniter.com/forums/viewthread/110130/P0/Codeigniter - 여러 파일 업로드 -> db에 삽입 - 문제 발생!

나는 거의 작동하지만 난 내 DB에 업로드 된 데이터를 추가하는 몇 가지 문제가 있어요이 -

는이 게시물을 따랐다. 정의되지 않은 변수 : rajar_full_file_path

메시지 : 여기

내 컨트롤러 기능 ... 폼이 나는 다음과 같은 오류를 얻을 제출 후

function addStation(){ 
     // set common properties 
     $data['title'] = 'Add new station'; 
     $data['action'] = site_url('admin/station/addStation'); 
     $data['link_back'] = anchor('admin/station/index/','Back to list of stations',array('class'=>'back')); 

     // set validation properties 
     $this->_set_fields(); 
     $this->_set_rules(); 

     $config['allowed_types'] = 'pdf|xls|doc|docx'; 
    $config['max_size'] = '1000'; 
    $config['max_width'] = '1024'; 
    $config['max_height'] = '768'; 
    $path_to_uploads='./uploads/files/stations'; 
    $config['upload_path'] = $path_to_uploads; 

    // File specific (overrule global and optional) 
$config['logo_file']['upload_path'] = './uploads/images/stations'; 
$config['logo_file']['allowed_types'] = 'gif|jpg|png'; 


    $this->load->library('upload', $config); 
    //add this 
    $this->upload->initialize($config); 
if (!$this->upload->do_upload(array('rajar_file','playlist_file','map_file', 'logo_file'))){ 
     $error = $this->upload->display_errors(); 
     echo "<script>alert($error);</script>"; 
    }else{ 
     $data = array('upload_data' => $this->upload->data(array('rajar_file','playlist_file','map_file', 'logo_file'))); 

     $rajar_file_name = $upload_data['rajar_file']['file_name']; 
     $rajar_full_file_path = $path_to_uploads.'/'.$rajar_file_name; 

     $playlist_file_name = $upload_data['playlist_file']['file_name']; 
     $playlist_full_file_path = $path_to_uploads.'/'.$playlist_file_name; 

     $map_file_name = $upload_data['map_file']['file_name']; 
     $map_full_file_path = $path_to_uploads.'/'.$map_file_name; 

     $logo_file_name = $upload_data['logo_file']['file_name']; 
     $logo_full_file_path = $path_to_uploads.'/'.$logo_file_name; 
    } 

// run validation 
     if ($this->validation->run() == FALSE){ 
      $data['message'] = ''; 
     }else{ 
      // save data 
      $station = array('name' => $this->input->post('name'), 
          'rajar' => $rajar_full_file_path, 
          'playlist' => $playlist_full_file_path, 
          'map' => $map_full_file_path, 
          'logo' => $logo_full_file_path ); 
      $id = $this->stationModel->save($station); 

      // set form input name="id" 
      $this->validation->id = $id; 

      // set user message 
      $data['message'] = '<div class="success">add new station success</div>'; 
     } 

      $this->template->set('title', 'Admin - Add New Station!'); 
     $this->template->load('admin/template', 'admin/stationEdit', $data); 


    } 

...

메시지입니다 정의되지 않은 변수 : playlist_full_file_path

메시지 : 정의되지 않은 변수 : map_full_file_path

메시지 : 정의되지 않은 변수 : logo_full_file_path

내가 속은 것인가?

감사 댄

답변

1

는 코드가 다음 양식 유효성 검사를 통과, if 문 첫 번째 입력 것 같다 (따라서 변수를 정의하지 않음) 두 번째 else 코드 블록에서 이러한 변수를 사용하려고합니다.

1

I 파일 업로드 따라서이 변수가 설정되지 않는 실패처럼 보인다. 업로드 오류를 표시하는 방법이 작동하지 않을 수 있습니다. 보기에 다시 오류를 보내는 대신보십시오 :

대신 :

$error = $this->upload->display_errors(); 
    echo "<script>alert($error);</script>"; 

을 시도 :

$error = $this->upload->display_errors(); 
    $data['message'] = $error;