2012-04-11 18 views
0

Ich versuche, ein Multiple-Image-Uploader zu erstellen und ich bin auf diese link gestoßen. Was ich unten in Bezug auf meinen Code verwirrt und die Verbindung ist, dass ich 2Codeigniter -> Bild Hochladen Teil 2 -> Mehrere Bilder

$this->upload->do_upload(); Funktionen haben müssen, meinen Code auszuführen oder wie verwende ich

$this->upload->initialize($config); in der unten Situation?

Code:

//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 

Antwort

1

Kemal hat Recht: Sie müssen über die Dateien iterieren, die Sie haben. Ich würde die „Konzepte“ in einem Array setzen, so dass Sie foreach verwenden können:

// 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

Danke, Wird der Bearbeitung beginnen, würden die Feldnamen die Werte in den $ Konzepte? –

+1

Ich denke schon. Ich kopierte "conceptOne" und "conceptTwo" aus Ihrem Code ... – Mischa

+0

:) nur Verständnis –

4

Sie brauchen eine Schleife, um die Datei-Upload-Bibliothek neu zu initialisieren, so dass Sie einige andere Bilder verarbeiten kann, die vom Benutzer hochgeladen werden.

Angenommen, ein Benutzer hat 2 Bilder hochgeladen. Dann müssen Sie den Code einfügen, der die Datei-Upload-Bibliothek initialisiert und das Hochladen der Datei innerhalb dieser Schleife durchführt.

Verwandte Themen