2008-11-13 13 views
7

Siteme bir form aracılığıyla bir resim yüklemeye çalışıyorum, ancak (veritabanını değil, yalnızca) veritabanından daha verimli Resmin yerini veritabanında saklayın.CodeIgniter - Bir form aracılığıyla bir görüntü karşıya yükleme, görüntünün konumunu veritabanında depolayın

Ben formu sorun yaşıyorum ve gerçekten nereye bilmiyorum:

<?=form_open('bro/submit_new');?> 
//other form data 
Image: <input type="file" name="image" size="20" /> <br> 
<input type="submit" value="Submit" /> 
</form> 

Şimdi formun kendisi gayet iyi çalışıyor

, sorun veritabanı alanına görüntüyü saklamak için çalışıyor olmasıdır 'image' (TEXT tipi). Sadece dosyayı depolamak ve dosya konumunu 'resim' alanında saklamak için bunu söylemenin en kolay yolu nedir? (Dosyayı denetleyici aracılığıyla nereye yükleyeceğimi söylüyorum).

Teşekkür

Düzenleme: (bu bölümü için) kontrolör kodu:

function submit_new(){ 
    $config['upload_path'] = './images/'; 
    $config['allowed_types'] = 'gif|jpg|png'; 
    $config['max_size'] = '2000'; 
    $config['max_width'] = '1024'; 
    $config['max_height'] = '768';  
    $this->load->library('upload', $config); 

    $this->db->insert('post', $_POST); 

    redirect('bro'); 
} 

cevap

8

CodeIgniter'ın dosya yükleme sınıfı sizin için yapacaktır. entry in their user guide, yapabildiğim kadar iyi açıklıyor, ben de size oraya işaret edeceğim.

Temelde, bu URL'yi veritabanına koyduğunuz bir yere eklemek için orada sahip oldukları denetleyiciyi değiştirmeniz gerekir. Bu, $ this-> upload-> data() ve sonuçta oluşan diziden [full_path] ayıklamak ve daha sonra veritabanı girdisini işleyen bir modele göndermek.

+0

veri yüklemek için bir model sayfalarını kullanmak Form_Open olmasın? Yanlış mı yazdım? – scrot

+0

Ama sanırım neden her iki yere de yükleyeceğini düşünmedim – scrot

+2

Ve şimdi bir aptal gibi hissediyorum. – scrot

9

kullanım form_open_multipart()()

-1

Ben veritabanına dosyayı doğrudan yüklenmiş bir izlenimi veritabanı

İlgili konular