2016-04-07 20 views
0

Öncelikle bunun yinelenen olarak işaretli OLMAMASI isteğinde bulunabilirsiniz. CodeIgniter yükleme kitaplığı ile ilgili konularda SO ile ilgili diğer yazıları okudum ve ne yazık ki bunu kapsamaz. Ayrıca CI belgelerini kapsamlı olarak okudum ve her şey bunun doğru çalışması gerektiğini gösteriyor.CodeIgniter yükleme kitaplığını kullanırken dosya adı yakalanmadı

Ben görüntüler klasörüne doğru yüklenir dosyayı kapmak için çok basit bir form kullanıyorum. Dosyanın tam_dosyası, görüntü adı verilen bir db tablosuna da başarıyla yazılmıştır. Ancak dosya adı boş.

Benim formu:

<?php echo form_open_multipart('image_upload/do_upload');?> 

    <input type="file" name="userfile" size="20" multiple="true" /> 

    <br /><br /> 

    <input type="submit" value="upload" /> 

    </form> 

Benim Kontrolör fonksiyonu:

function do_upload() 
    { 
     $config['upload_path'] = 'c:/wamp/www/honest/images'; 
     $config['allowed_types'] = 'gif|jpg|png'; 
     $config['max_size'] = '5000'; 
     $config['overwrite'] = TRUE; 
     $config['remove_spaces'] = TRUE; 


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

     $image_data = $this->upload->data(); 

     echo '<pre>'; print_r($image_data); echo '</pre>'; 

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

      $data['main_content'] = 'imageupload'; 
      $this->load->view('includes/template', $data); 
      echo "FAILED"; 
     } 
     else 
     { 
      $data = array(
      'filename' => $image_data['file_name'], 
      'fullpath' => $image_data['full_path'] 
     ); 
      $this->db->insert('images', $data); 
      $this->load->view('imageupload'); 
     } 
    } 
Ben ilişkili görüntü verilerini görüntülemek için

echo print_r($image_data); echo; 

kullanıyorum

ama bu bütün bu döndürülür geçerli:

Array 
(
    [file_name] => 
    [file_type] => 
    [file_path] => c:/wamp/www/honest/images/ 
    [full_path] => c:/wamp/www/honest/images/ 
    [raw_name] => 
    [orig_name] => 
    [client_name] => 
    [file_ext] => 
    [file_size] => 
    [is_image] => 
    [image_width] => 
    [image_height] => 
    [image_type] => 
    [image_size_str] => 
) 

o dosya adını ve diğer ayrıntıları kapma değil neden dışarı çalışamaz - Birisi umarım basit bir hatadır spot ne yardım edebilir?

Çok teşekkürler,

DP. Aslında bir şey yüklemek önce

+0

bu yazı ile benzer gibi görünse: http://stackoverflow.com/questions/8643806/codeigniter-image-upload- cant-grab-dosya-adı? rq = 1 –

+0

Yup - bunu okuyun, işe yaramadı. Ama başka bir poster sadece hatayı fark etti. –

cevap

2

Sen yüklenen verilerinizi talep ediyorlar. Bu nedenle, $image_data, yalnızca yapılandırma değerlerinizi içerir. aslında (sizin başka bloğuna) do_upload() gerçekleştirdikten sonra sizin $image_data = $this->upload->data(); çağrıyı taşı:

sorgula
 function do_upload() 
    { 
     $config['upload_path'] = 'c:/wamp/www/honest/images'; 
     $config['allowed_types'] = 'gif|jpg|png'; 
     $config['max_size'] = '5000'; 
     $config['overwrite'] = TRUE; 
     $config['remove_spaces'] = TRUE; 


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

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

      $data['main_content'] = 'imageupload'; 
      $this->load->view('includes/template', $data); 
      echo "FAILED"; 
     } 
     else 
     { 
      $image_data = $this->upload->data(); 
      $data = array(
      'filename' => $image_data['file_name'], 
      'fullpath' => $image_data['full_path'] 
     ); 
      $this->db->insert('images', $data); 
      $this->load->view('imageupload'); 
     } 
    } 
+0

Mükemmel! - teşekkürler yükler Wolf. Bu bütün gün beni şaşırttı. $ This-> load-> kütüphanesinin ('upload', $ config); yüklemeyi zaten yapmıştı - görünüşe göre değil! –

+0

@DavidPride Rica ederim. Cevabımı doğru olarak işaretlemekte özgürsünüz. – Wolf

İlgili konular