大头照上传预览,并操作数据库和删除文件夹中存储的之前的图片;$_SERVER['DOCUMENT_ROOT']上传图片和删除图片的时候不要用绝对路径,可以用这个路径

大头照上传预览,并操作数据库和删除文件夹中存储的之前的图片;$_SERVER['DOCUMENT_ROOT']上传图片和删除图片的时候不要用绝对路径,可以用这个路径

    //大头照图片的上传预览,更换之后删除原图片,更换为新上传图片
    public function upload() {
        $nn = session( username );
        $xc = M( "users" );
        $datas['username']=$nn;
        $cc = $xc->where($datas)->find();
        
        $upload = new Think Upload(); // 实例化上传类
        $upload->maxSize = 3145728; //设置上传文件的大小
        $p = $upload->rootPath = './data/upload/portal'; //相对路径
        $sp = $patht = $upload->savePath = '/'; //和rootPath配合使用,路径为./Public/Uploads
        $upload->saveName = array( 'uniqid', '' ); //上传文件的保存规则,支持数组和字符串方式定义
        $upload->exts = array( 'jpg', 'gif', 'png', 'jpeg' ); //上传文件的类型
        $upload->autoSub = true; //自动使用子目录保存上传文件 默认为true,
        $upload->subName = array( 'date', 'Ymd' ); //子目录创建方式,采用数组或者字符串方式定义,和autosub配合使用
        $info = $upload->upload();
        $inf = $info[file0];
        if ( !$info ) { // 上传错误提示错误信息 ,实际上为客户没有上传图片,系统默认保存图片,else为客户上传图片,save图片路径  
            $this->error($upload->getError());  
            //$this->error( '上传失败,请重新上传!',__ROOT__."/", 0 );
        }else{
            $savepath = substr( $inf[ 'savepath' ], 1, -1 );
            $sta = '/data/upload/portal/'.$savepath."/".$inf['savename'];//图片存到数据库的路径,/data/upload/portal/20180304/5a9ba2a07c612.jpg
            //dump($sta);die();
            if(empty($cc['smeta'])){
                $wh[ 'id' ] = $cc['id'];//$CC['id']为主键值,必须根据主键值存储到数据库,别的字段无效
                $wh[ 'smeta' ] = $sta;
                $xc->save( $wh );
            }else{
                $a = $xc->where('id='.$cc['id'])->find();
                $strurl = substr(__ROOT__,1);
                $url=$_SERVER['DOCUMENT_ROOT'].$strurl.$a['smeta'];//绝对路径,E:/wamp/www/thb/data/upload/portal/20180304/5a9ba2a07c612.jpg,$_SERVER['DOCUMENT_ROOT'] = E:/wamp/www/,$_SERVER['DOCUMENT_ROOT']这个函数可以在不同的环境中读取到根目录的绝对路径,省却改变环境后再来改变此路径
                unlink($url);//执行删除文件
                $wh[ 'id' ] = $cc['id'];
                $wh[ 'smeta' ] = $sta;
                $xc->save( $wh );//把新路径存储到数据库
            }
            //session( null );
            redirect(U('list/index',array('id'=>8)));
        }
    }
View Code