2009-07-23 12 views
0

Ich weiß, es gibt viele Online-Tutorials, aber ich konnte sie nicht :(vielleicht etwas funktioniert besonders falsch mit meinem System:/Foto-Upload mit codeigniter

mein Controller localpath ist: /localhost/rl/Anwendungen/backend/Controller/

Controller:

function do_upload() 
{ 
    $config['upload_path'] = './uploads/'; 
    $config['allowed_types'] = 'gif|jpg|png'; 
    $config['max_size'] = '100'; 
    $config['max_width'] = '1024'; 
    $config['max_height'] = '768'; 

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

    if (! $this->upload->do_upload()) 
    { 
     $error = array('error' => $this->upload->display_errors()); 

     $this->load->view('add_image', $error); 
    } 
    else 
    { 
     $data = array('upload_data' => $this->upload->data()); 

     $data['id'] = $this->input->post['id_work']; 
     $this->load->view('add_image', $data); 
    } 

} 

My view localpath ist: /localhost/rl/Anwendungen/backend/view/

Ausblick:

echo form_open_multipart('do_upload'); 
    <ul class="frm"> 
     <li><label>File: *</label><input type="file" name="userfile" class="frmlmnt" size="50" /></li>  
     <li><label></label><input type="submit" class="btn" value="Upload" /></li> 
    </ul> 
</form>   

Vielleicht mache ich etwas falsch mit Pfad

Antwort

0

Ich habe keine Ahnung, was codeigniter ist, aber ich sehe drei Dinge richtig ab:

  1. Ihre Funktion doesn Es ist nichts passiert. Ich bin mir nicht sicher, ob die "this" -Variable das erledigt, aber vielleicht solltest du ihm die Upload-URL übergeben?

  2. Sie haben config ['size'] auf '100' gesetzt. Ich kann nur vermuten, dass die Größe sich auf die Dateigröße bezieht, aber verwendet diese Erweiterung standardmäßig KB oder MB?

  3. Sie haben dieses Bit:

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

und dieses Bit:

$data = array('upload_data' => $this->upload->data()); 

$data['id'] = $this->input->post['id_work']; 
$this->load->view('add_image', $data); 

welcher Teil das Hochladen tatsächlich tut? Wenn es der erste ist, wie weiß es, was hochgeladen werden soll? Ich sehe, dass in keinem der Config-Array, und sich vorstellen, „upload“ nicht die Adresse der Datei ist ...

Wenn es der zweite Teil ist, man muss es

gesetzt
$this->load->view('add_image', $data); 

Aber warum sollten Sie es sehen wollen? Ladest du es nicht hoch? Ich würde annehmen, dass die Ansicht IS es hochlädt, aber Sie verwenden die gleiche Methode für Fehler im vorherigen Teil.

+1

Einige Antworten für den Fall, dass andere diese Frage finden: Dieser Code ist direkt von http://codeigniter.com/user_guide/libraries/file_uploading.html 1. Es ist eine Funktion in einem CodeIgniter (CI) -Controller, so dass alles vom Framework übergeben wird. 3. $ this-> upload-> do_upload() in der if-Anweisung führt den eigentlichen Upload durch. upload_data() gibt nur die Details dieses Uploads zurück. Wenn er also $ Daten an die Ansicht sendet, sieht er nicht den eigentlichen Upload, er sieht nur die Details. – jimyi

1

Ändern Sie Ihre Ansicht

echo form_open_multipart('backend/controllername/do_upload'); 

und Back-End-Ordner innerhalb des Controller-Ordner erstellen.