2013-03-27 3 views
5

Piszę kod do przesłania pliku obrazu. Ale zawsze pokazuje You did not select a file to upload. To jest mój kod.Przesyłanie pliku z koderem nie działa

widok

<?php echo form_open_multipart('template/advertisement', array('id' => 'template-add-form', 'class' => 'form-horizontal')); ?> 
    <?php echo form_fieldset('Add Advertisement', array('class' => '')); ?> 
    <div class="control-group"> 
     <label class="control-label" for="add_l">Left Advertisement </label> 
     <div class="controls"> 
      <input type="file" name="add_l"/> 
     </div> 
    </div> 
    <div class="control-group"> 
     <div class="controls"> 
      <input type="submit" name="add" value="Update Advertisement" class="btn btn-primary" /> 
     </div> 
    </div> 
    <?php echo form_fieldset_close(); ?> 
<?php echo form_close(); ?> 

kontroler

public function advertisement() 
    { 
     $headerData = array(); 
     $headerData['title'] = ucfirst('Advertisement'); 

     $data = array(); 

     if ($this->input->post() !== FALSE) { 
      $config = array(); 
      $config['upload_path'] = './images/add'; 
      $config['allowed_types'] = 'gif|jpg|png'; 
      $config['max_size'] = '100'; 
      $config['max_width'] = '1024'; 
      $config['max_height'] = '768'; 
      $config['max_filename'] = '100'; 

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

      if ($this->upload->do_upload()) { 
       $data['message'] = $this->upload->data();      
      } else { 
       $data['error'] = $this->upload->display_errors('<div class="alert alert-error">', '</div>');     
      } 
     } 

     $this->load->view('template/header.php', $headerData); 
     $this->load->view('template/advertisement.php', $data); 
     $this->load->view('template/footer.php');  
    } 

Proszę mi pomóc.

Odpowiedz

13

Do zmiany PHP

$this->upload->do_upload() 

do

$this->upload->do_upload("add_1") 

gdzie "add_1" ma swój atrybut name wejściowego.

Codeigniter UPLOAD library docs

PS: W kodzie HTML atrybut Label dla = "" jest kierowany na identyfikator wejścia, więc musisz dodać identyfikator do danych wejściowych.

+0

To nie zadziałało dla mnie :(Nie mogę znaleźć dokładnego problemu Sprawdziłem także uprawnienia do folderów Brak powodzenia .. – VishalParkash

+0

@VishalParkash lepiej zrób nowe pytanie w SO na przykładzie twojego kodu .. komentując to to nie działa, nie pomoże ci. – Svetoslav

+0

OK. Ale mój kod wygląda dokładnie tak samo, dlatego pomyślałem, że powinienem komentować, w przeciwnym razie tworzyłem kolejne pytanie. W każdym razie .. Przesyłam plik w stylu CorePHP. – VishalParkash

0

Kradnie mi ten problem i rozwiązuję go. możesz sprawdzić plik fileinfo w php już? jeśli masz dostęp do CPanel, możesz przejść do TABELA OPROGRAMOWANIA, a następnie szukać Wybierz wersję PHP, następnie możesz zobaczyć listę modułów i sprawdzić plik fileinfo. i spróbuj ponownie załadować.