Ben CodeIgniter 1.7.2 ile bir görüntü yükleme formu oluşturmak için çalışılıyor
Ben bir resim upload çalıştığınızda Ancak, CI yükleme dizini geçersiz bana bildirir.
Bunu kontrol etmek için, ben, Hello, World!
Sonra bunun içeriğini yankılandı, ve bak şu işe test.txt
içerikle denilen uploads
dizinine bir dosya yükledi o merhaba diyor. Bunun ötesinde, ben dizine gidin ve benim tarayıcıda bunun içeriğini görüntülemek, böylece dizin kesinlikle var ve görüntülenebilir olabilir.
Denetleyici:
class Pictures extends Site_Controller {
// snip...
public function upload() {
$this->load->helper('form');
$this->_render('Do Upload','pictures/upload',array('msg'=>''));
}
public function do_upload() {
$this->load->helper('form');
$config['upload_path'] = base_url().'uploads/';
// test the directory:
// echo file_get_contents($config['upload_path'].'test.txt');
// should echo "Hello, World!"
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '2048';
$config['max_width'] = '1024';
$config['max_height'] = '768';
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload())
{
$data = array('msg' => $this->upload->display_errors());
$this->_render('Do Upload (Errors!)','pictures/upload',$data);
}
else
{
$uploaddata = $this->upload->data();
$this->load->model('pictures_Model','pictures');
$this->pictures->insertUploaded($uploaddata,$this->input->post('name'),$this->input->post('caption'));
$data['msg'] = 'Successful Upload!';
$this->_render('Do Upload (Success!)','pictures/upload',$data);
}
}
//...
}
$this->_render()
belirtilen bir başlık ile bir düzende belirtilen verilerle belirtilen görünümü sarar sadece bir kısayol işlevidir.
pictures/upload
görünüm:
<h1>Do Upload</h1>
<? if (isset($msg)) echo $msg; ?>
<?= form_open_multipart('pictures/do_upload');?>
<input type="file" name="userfile" />
<input type="text" name="name" />
<input type="text" name="caption" />
<br /><br />
<input type="submit" value="Upload" />
</form>
Son olarak, ve muhtemelen gereksiz, modeli uç:
public function insertUploaded($data,$name,$caption) {
$row = array();
$row['filename'] = $data['file_name'];
$row['mime'] = $data['file_type'];
$row['size'] = $data['file_size'];
$row['name'] = $name;
$row['caption'] = $caption;
$row['img'] = file_get_contents($data['full_path']);
$this->db->insert('pictures',$row);
}
Herhangi bir fikir neden benim yükleme dizini geçersiz?