2012-04-11 54 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

感謝,開始編輯,將在$概念的值是字段名稱? – 2012-04-11 05:22:24

+1

我想是的。我從你的代碼複製''conceptOne''和''conceptTwo'' ... – Mischa 2012-04-11 05:24:05

+0

:)只是瞭解 – 2012-04-11 05:26:59

4

你需要一個循環重新初始化文件上傳庫,這樣就可以處理由用戶上傳了一些其他的圖像。

假設用戶上傳了2張圖片。那意味着你需要放置初始化文件上傳庫的代碼,並在該循環中進行文件上傳。

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