shandongdh
发表于 2013-1-10 12:12:48
好东西谢谢分享
diy66
发表于 2013-1-15 09:07:00
上传完图片后,如何实实刷新?不然上传完,还是显示默认图片,只有手动刷新后才能显示
Rzoro
发表于 2013-1-15 11:24:30
似乎很复杂
smallhe
发表于 2013-1-15 22:23:48
精品!!!
emric
发表于 2013-1-16 00:53:54
标记
diy66
发表于 2013-1-16 08:27:12
在哪里设定三种图片的尺寸?
xiaozhuaisnow
发表于 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这个就行了,大中小,直接后加相应的字符串就可以
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";
}
/**
* 保存图片时响应
*/
function onrectavatar() {
@header ( "Expires: 0" );
@header ( "Cache-Control: private, post-check=0, pre-check=0, max-age=0", FALSE );
@header ( "Pragma: 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 == 4 || $middleinfo == 4 || $smallinfo == 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);
}
sdink
发表于 2013-1-29 13:33:57
xiaozhuaisnow 发表于 2013-1-29 12:12 static/image/common/back.gif
问一下,如何把图片名称存入数据库呢???不清楚为什么无法执行insert_imgurl方法存入数据库
难道是返回值 ...
不明白你说的是什么意思
xiaozhuaisnow
发表于 2013-1-29 14:24:15
sdink 发表于 2013-1-29 13:33 static/image/common/back.gif
不明白你说的是什么意思
本身我要做一个用户上传头像的功能,insert_imgurl是把上传的头像名称,存入数据库的用户表,
xiaozhuaisnow
发表于 2013-1-29 18:21:57
@sdink 能够自定义剪切图片的大小吗?