日期:2014-05-17  浏览次数:20506 次

关于phpcms 中头像上传 那位高手说下如何实现的


图片在flash中提交过来的zip压缩包中,谁能告诉我,php是怎么获取到这个zip资源的?
------解决方案--------------------
phpsso_server\phpcms\modules\phpsso\classes\phpsso.class.php
第46行

$this->data['avatardata'] = $GLOBALS['HTTP_RAW_POST_DATA'];

post过来的数据。

file_pust_contents 根据数据,生成文件(包括文件地址)
你的代码没有贴完全

下面就是解压缩了

//解压缩文件
pc_base::load_app_class('pclzip', 'phpsso', 0);
$archive = new PclZip($filename);
if ($archive->extract(PCLZIP_OPT_PATH, $dir) == 0) {
die("Error : ".$archive->errorInfo(true));
}

//判断文件安全,删除压缩包和非jpg图片
$avatararr = array('180x180.jpg', '30x30.jpg', '45x45.jpg', '90x90.jpg');
if($handle = opendir($dir)) {
    while(false !== ($file = readdir($handle))) {
if($file !== '.' && $file !== '..') {
if(!in_array($file, $avatararr)) {
@unlink($dir.$file);
} else {
$info = @getimagesize($dir.$file);
if(!$info 
------解决方案--------------------
 $info[2] !=2) {
@unlink($dir.$file);
}
}
}
    }
    closedir($handle);    
}
$this->db->update(array('avatar'=>1), array('uid'=>$this->uid));
exit('1');