2012-04-11 7 views
0

다중 이미지 업 로더를 만들려고 시도하고 있는데,이 부분은 link입니다. 나는 아래에있는 내 코드에 관하여에 대한 혼란 스러워요 및 링크는 내 코드를 실행하는 2 개Codeigniter -> 이미지 업로드 중 2 부 -> 복수 이미지

$this->upload->do_upload(); 기능을 가지고해야합니까 또는 어떻게

$this->upload->initialize($config);는 아래의 상황에서 사용 않는 것이 무엇입니까?

코드 : 당신이 사용자가 업로드 다른 이미지를 처리 ​​할 수 ​​있도록

//Image Upload Function 

$conceptOne = 'conceptOne'; 
$conceptTwo = 'conceptTwo'; 

$location = $_SERVER['DOCUMENT_ROOT'].'/_assets/quote/uploads/'; 

$folderName = $this->quote->getCompanyDetails()->companyName; 
$folderName = str_replace(" ", "_", $folderName); 
$folderName = strtolower($folderName); 

if(!is_dir($location.$folderName)) 
{ 
    mkdir($location.$folderName); 
    chmod($location.$folderName, 0777); 

    //Set File Settings 
    $config['upload_path'] = $location.$folderName; 
    $config['allowed_types'] = 'jpg|png|pdf'; 
    $config['file_name'] = $conceptOne; 
    $config['remove_spaces'] = TRUE; 
    $config['overwrite'] = TRUE; 
    $config['max_size'] = '1024'; 
    $config['max_width'] = '1024'; 
    $config['max_height'] = '768'; 

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

    print_r($config); 

    if(!$this->upload->do_upload($conceptOne)) { #= try upload 
     $data['uploadError'] = array('uploadError' => $this->upload->display_errors()); #Error 
     $this->load->view('layout', $data); 
    } // Do upload 
    else{ 
     $data = array('upload_data' => $this->upload->data($conceptOne)); 
    }// end else 
}// end if folder 

답변

1

케말이 맞습니다. 가지고있는 파일을 반복해야합니다. 당신이 foreach 사용할 수 있도록 내가 배열에서 "개념을"둘 것 :

// Load upload library without any configuration 
$this->load->library('upload'); 

$concepts = array('conceptOne','conceptTwo'); 

$location = $_SERVER['DOCUMENT_ROOT'].'/_assets/quote/uploads/'; 

$folderName = $this->quote->getCompanyDetails()->companyName; 
$folderName = str_replace(" ", "_", $folderName); 
$folderName = strtolower($folderName); 

if(!is_dir($location.$folderName)) 
{ 
    mkdir($location.$folderName); 
    chmod($location.$folderName, 0777); 
} 

$config['upload_path'] = $location.$folderName; 
$config['allowed_types'] = 'jpg|png|pdf'; 
$config['remove_spaces'] = TRUE; 
$config['overwrite'] = TRUE; 
$config['max_size'] = '1024'; 
$config['max_width'] = '1024'; 
$config['max_height'] = '768'; 

// Upload 'concepts' 
foreach($concepts as $concept) 
{ 
    $config['file_name'] = $concept; 
    $this->upload->initialize($config); 
    $this->upload->do_upload($concept); 
} 

// Upload logo 
$config['file_name'] = 'logo-filename.gif'; 
$this->upload->initialize($config); 
$this->upload->do_upload('logo'); 
+0

감사합니다, 편집을 시작하는 $ 개념의 값은 필드 이름 것입니까? –

+1

나는 그렇게 생각한다. 나는 당신의 코드에서 "conceptOne"과 "conceptTwo"를 복사했습니다 ... – Mischa

+0

:) 그냥 이해합니다 –

4

당신은 파일 업로드 라이브러리를 다시 초기화 루프가 필요합니다.

사용자가 2 개의 이미지를 업로드했다고 가정 해 보겠습니다. 그렇다면 파일 업로드 라이브러리를 초기화하는 코드를 넣고 그 루프 안에 파일 업로드를해야한다는 뜻입니다.

for ($i = 0; $i < 2; $i++) 
{ 
    // Change the config here if necessary 
    $this->upload->initialize($config); 
    // Call do_upload() here 
} 
관련 문제