用户
 找回密码
 入住 CI 中国社区
搜索
楼主: sdink
收起左侧

[程序 App] flash ucenter 头像上传剪切 完整版

  [复制链接]
发表于 2013-1-10 12:12:48 | 显示全部楼层
好东西  谢谢分享
发表于 2013-1-15 09:07:00 | 显示全部楼层
上传完图片后,如何实实刷新?不然上传完,还是显示默认图片,只有手动刷新后才能显示
发表于 2013-1-15 11:24:30 | 显示全部楼层
似乎很复杂
发表于 2013-1-15 22:23:48 | 显示全部楼层
精品!!!
发表于 2013-1-16 00:53:54 | 显示全部楼层
标记
发表于 2013-1-16 08:27:12 | 显示全部楼层
在哪里设定三种图片的尺寸?
发表于 2013-1-29 12:12:08 | 显示全部楼层
本帖最后由 xiaozhuaisnow 于 2013-1-29 12:35 编辑

问一下,如何把图片名称存入数据库呢???不清楚为什么无法执行insert_imgurl方法存入数据库
难道是返回值问题?ar模式下insert返回值。但是也不应该不能插入数据库啊


.........................
本来想删掉问的问题,想想算了,引以为戒吧。上面我问,为什么无法插入数据库,这个它又不会报错。小小的纠结了一下,因为我确定我写的没有问题。
avatar文件夹项目的autoload.php我也修改了,自动加载database,找了几分钟原因是
我编辑器开了好几个项目,autoload.php加载database不是更改的avatar项目的。都是不小心造成的。{:soso_e113:}

这个自己小小的修改一下,原来的上传头像就一个名字,所以会覆盖掉,我再get_avatar方法中更改一下以当前时间的加上毫秒的后六位作为文件名存入数据库,这样方便以后调用,存库之后类似于这样D:\phpproject\avatar\avatar/000/00/00/2013-01-29_04-17-05913743_small.jpg
方便以后调用,这个只是初步的一个东西,其实应该在get_avatar直接记录2013-01-29_04-17-05913743这个就行了,大中小,直接后加相应的字符串就可以

PHP复制代码
 
function get_avatar($uid, $size = 'big') {
                $size = in_array ( $size, array ('big', 'middle', 'small' ) ) ? $size : 'big';
                $uid = abs ( intval ( $uid ) );
                $uid = sprintf ( "%09d", $uid );
                $dir1 = substr ( $uid, 0, 3 );
                $dir2 = substr ( $uid, 3, 2 );
                $dir3 = substr ( $uid, 5, 2 );
                return $dir1 . '/' . $dir2 . '/' . $dir3 . '/' . date('Y-m-d_H-i-s',time()).substr(microtime(),2,6) . "_$size.jpg";
        }
 
复制代码

PHP复制代码
 
/**
         * 保存图片时响应
         */
        function onrectavatar() {
                @header ( "Expires: 0" );
                @header ( "Cache-Control: private, post-check=0, pre-check=0, max-age=0", FALSE );
                @header ( "ragma: no-cache" );
                header ( "Content-type: application/xml; charset=utf-8" );
                $arr = array ();
                parse_str ( $_GET ['input'], $arr );
                $uid = intval ( $arr ['uid'] );
                if (empty ( $uid )) {
                        return '<root><message type="error" value="-1" /></root>';
                }
                $home = $this->get_home ( $uid );
                if (! is_dir ( $this->systempath . $this->avatarpath . $home )) {
                        $this->set_home ( $uid, $this->systempath . $this->avatarpath );
                }
                $bigavatarfile = $this->systempath . $this->avatarpath . $this->get_avatar ( $uid, 'big' );
                $middleavatarfile = $this->systempath . $this->avatarpath . $this->get_avatar ( $uid, 'middle' );
                $smallavatarfile = $this->systempath . $this->avatarpath . $this->get_avatar ( $uid, 'small' );
                $array_pic_url=array('bigavatarfile'=>$bigavatarfile,'middleavatarfile'=>$middleavatarfile,'smallavatarfile'=>$smallavatarfile);
                @$this->insert_imgurl($array_pic_url);
                $bigavatar = $this->flashdata_decode ( $_POST ['avatar1'] );
                $middleavatar = $this->flashdata_decode ( $_POST ['avatar2'] );
                $smallavatar = $this->flashdata_decode ( $_POST ['avatar3'] );
                if (! $bigavatar || ! $middleavatar || ! $smallavatar) {
                        return '<root><message type="error" value="-2" /></root>';
                }
                $success = 1;
                $fp = @fopen ( $bigavatarfile, 'wb' );
                @fwrite ( $fp, $bigavatar );
                @fclose ( $fp );
               
                $fp = @fopen ( $middleavatarfile, 'wb' );
                @fwrite ( $fp, $middleavatar );
                @fclose ( $fp );
               
                $fp = @fopen ( $smallavatarfile, 'wb' );
                @fwrite ( $fp, $smallavatar );
                @fclose ( $fp );
               
                $biginfo = @getimagesize ( $bigavatarfile );
                $middleinfo = @getimagesize ( $middleavatarfile );
                $smallinfo = @getimagesize ( $smallavatarfile );
                if (! $biginfo || ! $middleinfo || ! $smallinfo || $biginfo [2] == 4 || $middleinfo [2] == 4 || $smallinfo [2] == 4) {
                        file_exists ( $bigavatarfile ) && unlink ( $bigavatarfile );
                        file_exists ( $middleavatarfile ) && unlink ( $middleavatarfile );
                        file_exists ( $smallavatarfile ) && unlink ( $smallavatarfile );
                        $success = 0;
                }
                $filetype = '.jpg';
                @unlink ( $this->systempath . $this->tmppath . 'useravatar' . $uid . $filetype );
               
               
                //print_r($array_pic_url);
                if ($success) {
                        return '<?xml version="1.0" ?><root><face success="1"/></root>';//return $array_pic_url;
                }
                return '<?xml version="1.0" ?><root><face success="0"/></root>';//return $array_pic_url;
        }
       
        function insert_imgurl($array_pic_url){
                $ci = & get_instance ();
                $data=array('url'=>$array_pic_url['smallavatarfile']);
                $ci->db->insert('img_url',$data);
               
        }
 
复制代码






 楼主| 发表于 2013-1-29 13:33:57 | 显示全部楼层
xiaozhuaisnow 发表于 2013-1-29 12:12
问一下,如何把图片名称存入数据库呢???不清楚为什么无法执行insert_imgurl方法存入数据库
难道是返回值 ...

不明白你说的是什么意思  
发表于 2013-1-29 14:24:15 | 显示全部楼层
sdink 发表于 2013-1-29 13:33
不明白你说的是什么意思

本身我要做一个用户上传头像的功能,insert_imgurl是把上传的头像名称,存入数据库的用户表,
发表于 2013-1-29 18:21:57 | 显示全部楼层
@sdink 能够自定义剪切图片的大小吗?

本版积分规则