废话不说,总结开始
一、关于利用zend framework图片上传。
前台的表单或者jquery上传是必不可少的,我用的是jquery的uploadify作为网站传图片的前端。
现在只写控制器里的代码
第一步,创建Zend_File_Transfer_Adapter_Http()
$adapter=new Zend_File_Transfer_Adapter_Http();
第二步,创建该文件的存储路径--绝对路径
$path=APPLICATION_PATH.'/../public/uploads/images/';
$folder=New Zend_Search_Lucene_Storage_Directory_Filesystem($path);(该函数检查该路径是否存在,若不存在,则创建,若存在,则不创建)
第三步,获取文件信息
$fileinfo=$adapter->getFileInfo();
$ext=$this->_getExtension($fileInfo);(注:_getExtentsion是自定义的获取扩展名的函数);
第四步,新建文件名
$fileName=time().'.'.$ext;
第五步,添加过滤()//这一步我也不太明白原理
$adapter->addFilter('Rename',array('target'=>$fileName,'overwrite'=>true));
第六步,设置目标路径
$adapter->setDestination($path);
第七步,验证后缀名
$adapter->addValidator('Extension',false,array('jpg','gif','png','jpeg'));
最后一步,上传
$adapter->receive();//返回bool
二、关于用户验证(这个好久之前就应该写了,最近写后台部分时候回头看了看,发现有必要写一写
用户验证有很多方式不仅仅是数据库验证,因为我只接触了数据库验证,所以总结一下
第一步自然的,获取前端提交的username和password,分别存在$username , $password
第二步,获取数据库适配器
$db=Zend_Db_Table::getDefaultAdapter();
第三步,新建认证适配器
$authAdapter=new Zend_Auth_Adapter_DbTable($db,'users','username','password');
第四步,设置认证条件
$authAdapter->setIdentity($username)->setCretidential(md5($password));
第五步,关键---认证
$res=$authAdapter->authenticate();
第六步,存储认证
if($res->isValid()){
$auth=Zend_Auth::getinstance();
$storage=$auth->getStorage();
$storage->write($authAdapter->getResultRowObject(array(
'id','username','role_name'
)))
}
以后就可以在需要的时候直接用$auth->hasIdentity()进行登录判断,用getIdentity()获取认证存储的个人信息数据。
小总结,休息一下,再写...