前2天推荐了一个开源的flash头像上传组件,今天把这个组件加入到了codeigniter框架中。这个组件最大的特点就是使用方便,当然如果你要修改其中的某些功能的话,你可能需要联系插件作者进行定制了。
下面介绍一下codeigniter框架部署这款flash头像上传组件的方法:
1、控制器controllers
//头像修改 public function avatar() { $result = $this->userinfo_model->get_user_base_info_by_uid($this->uid); $data = array(); $data['avatar'] = $this->default_avatar; if($result[0]->avatar != '') { $data['avatar'] = base_url() . "uploads/users/avatar/{$this->uid}/{$this->uid}_big.png"; } $this->view('userinfo/avatar', $data); } //头像处理 public function doavatar() { error_reporting(0); //设置头像保存目录 $webroot = $_SERVER['DOCUMENT_ROOT']; $save_path = "{$webroot}/uploads/users/avatar/{$this->uid}/"; if(!file_exists($save_path)) { mkdir($save_path, 0777, true); } $file_src = "src.png"; $filename162 = "{$save_path}{$this->uid}_big.png"; $filename48 = "{$save_path}{$this->uid}_middle.png"; $filename20 = "{$save_path}{$this->uid}_small.png"; $src = base64_decode($_POST['pic']); $pic1 = base64_decode($_POST['pic1']); $pic2 = base64_decode($_POST['pic2']); $pic3 = base64_decode($_POST['pic3']); if($src) { file_put_contents($file_src, $src); } file_put_contents($filename162, $pic1); file_put_contents($filename48, $pic2); file_put_contents($filename20, $pic3); $data = array(); $data['avatar'] = $this->uid; $result = $this->userinfo_model->update_user_by_uid($this->uid, $data); if($result) { $rs['status'] = 1; echo json_encode($rs); } }
2、视图views
当然这里少不了组件的核心部分:crossdomain.xml、avatar.swf、default.jpg这3个文件。<script type="text/javascript"> function uploadevent(status){ status += ''; switch(status){ case '1': break; case '-1': window.location.reload(); break; default: window.location.reload(); } } 《script》
自己可以根据实际需要对上传文件做些安全等方面的处理。
贴个自己项目中的效果图: