我想使用do_upload函数codeigniter,并且我尝试通过任何教程来解决此代码。请帮我解决这个问题。
在控制器中:
function simpan_berita(){
$this->load->library('upload');
$config['upload_path'] = './assets/images/';
$config['allowed_types'] = 'gif|jpg|png|jpeg|bmp';
$config['encrypt_name'] = TRUE;
$this->upload->initialize($config);
if(!empty($_FILES['filefoto']['name']))
{
if ($this->upload->do_upload('filefoto'))
{
$gbr = $this->upload->data();
//Compress Image
$config['image_library']='gd2';
$config['source_image']='./assets/images/'.$gbr['file_name'];
$config['create_thumb']= FALSE;
$config['maintain_ratio']= FALSE;
$config['quality']= '60%';
$config['width']= 840;
$config['height']= 450;
$config['new_image']= './assets/images/'.$gbr['file_name'];
$this->load->library('image_lib', $config);
$this->image_lib->resize();
...
echo $this->session->set_flashdata('msg','success');
redirect('user/berita');
}else{
echo $this->session->set_flashdata('msg','warning');
redirect('user/berita');
}
}else{
redirect('admin/berita');
}
}
这是我的观看代码:
<form action="<?php echo base_url().'user/berita/simpan_berita'?>" method="post" enctype="multipart/form-data">
...
<div class="form-group">
<label>Gambar</label>
<input type="file" name="filefoto" style="width: 100%;" required>
</div>
</div>
</div>
</form>
当我尝试上传时,将运行其他条件:
else{
echo $this->session->set_flashdata('msg','warning');
redirect('user/berita');
}
我需要do_upload条件将运行。请发表评论以提供帮助。谢谢。
答案 0 :(得分:0)
想到了两种可能性...
您的/assets/images/
目录不可用(路径错误和/或codeigniter不可写),在这种情况下,您应仔细检查路径和/或尝试将目录的权限更改为777,如果一切正常开始工作,将您的工作降到更合理的权限级别。
或者,这是另一种情况(我读过很多书,但是到目前为止,我仍然认为这只是个骗局),如果您使用userfile
以外的任何格式,CI的上传库似乎都不喜欢它作为要上传的字段名称。尝试在视图和控制器中将filefoto
的所有引用都更改为userfile
,看看它是否神奇地开始工作:)
答案 1 :(得分:0)
您可以通过以下方式显示错误
echo $this->upload->display_errors();
或者只是检查
$this->upload->error_msg;