2012-04-11 2 views
0

Я пытаюсь создать многопользовательский загрузчик изображений, и я столкнулся с этим link. То, что я запутался о в отношении моего кода ниже, и ссылка является то, что я должен иметь 2Codeigniter -> Загрузка изображений Часть 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'' и ''conceptTw'' из вашего кода ... – Mischa

+0

:) просто понимание –

4

Вам нужен цикл переинициализировать библиотеку загрузки файлов, так что вы можете обработать некоторые другие изображения, загруженные пользователем.

Предположим, пользователь загрузил 2 изображения. Тогда это означает, что вам нужно поместить код, который инициализирует библиотеку загрузки файлов и выполняет загрузку файла внутри этого цикла.

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