接着CI框架实现基本的数据库操作这一篇的说,这些其实初学者都很容易弄懂的,因为数据库就是什么增删添改。 所以这一篇来说说上一篇被注释了的部分:文件上传! 这一回先说视图层好了: 在上一篇刚才的qa.php文件里面的代码:
1 2 3 4 5 6
| <form action="insert" method="post" enctype="multipart/form-data"> 标题:<input type="text" name="question" /><br /> 内容:<input type="text" name="answer" /><br /> 图片:<input type="file" name="image" /><br /> <input type="submit" value="提交" /> </form>
|
这个表单一定要记者enctype=”multipart/form-data”这个东东,没了它一定无法上传,切记切记; 然后是修改页面的视图代码:
1 2 3 4 5 6 7
| <form action="<?php echo "updata"?>" method="post" enctype="multipart/form-data"> 标题:<input type="text" name="question" /><br /> 内容:<input type="text" name="answer" /><br /> 图片:<input type="file" name="image" /><br /> <input type="submit" value="提交" /> <input type="text" name="id" value="<?php echo "$id"?>" /> </form>
|
注意action 然后就是在上一篇的控制器feadmin.php加上文件上传类:
1 2 3 4 5 6 7 8 9 10 11 12
| function fileUp(){ $config\['upload_path'\] = './upload/img'; $config\['allowed_types'\] = 'gif|jpg|png'; $config\['max_size'\] = '0'; $config\['encrypt_name'\] = true; $this->load->library('upload',$config); if ($this->upload->do_upload('image')) { $upload_data = $this->upload->data(); return $upload\_data\['file\_name'\]; } }
|
就是这个它可以实现文件上传, 在插入的时候代码
1 2 3 4 5 6 7 8 9 10 11
| function insert() { $_POST\['image'\] = $this->fileUp(); $data=array( 'question'=>$_POST\['question'\], 'answer'=>$_POST\['answer'\], 'img'=>$_POST\['image'\], ); $this->fe_model->insert($data); redirect('feadmin/look','refresh'); }
|
注意开头的那句$this->fileUp();它就是用那个文件上传类,搞定你要传过来的图片。 然后就是有修改了:是修改,不是修改查询
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| function updata(){ $_POST\['image'\] = $this->fileUp(); $id = $this->input->post('id'); $this->db->where('id',$id); $query= $this->db->get('yanzhengma'); $row = $query->row_array(); if($row\['img'\] != "") { $file_path = 'upload/img/'.$row\['img'\]; unlink($file_path); } $_POST\['image'\] = $this->fileUp(); $sel = array( 'question'=>$_POST\['question'\], 'answer'=>$_POST\['answer'\], 'img'=>$_POST\['image'\], ); if(!empty($id) && (count($sel)>1)){ $this->db->where('id',$id); $this->db->update('yanzhengma',$sel); }; redirect('feadmin/look','refresh'); }
|
依旧是加上了一个unlink()删掉之前的文件。 然后就是和插入一个道理,只不过MYSQL语句换为UPDATE罢了。 代码什么的,戳这里下载,两篇文章可能写的很粗浅,代码也都很简单,但是必须从简单开始,省的一口吃个大胖子出错多。
本文标题:CI框架实现基本的文件上传
文章作者:qianyugang
发布时间:2013-07-09
最后更新:2020-04-27
原始链接:https://102no.com/2013/07/09/codeigniter-basic-file-upload/
版权声明:本网站发表的全部原创内容(不仅限于文章、图片,包含文章评论),著作权均归其发表者所有,均采用 CC BY-NC-SA 4.0 CN 许可协议。转载请注明作者以及原文链接,商业授权请联系作者。