//大头照图片的上传预览,更换之后删除原图片,更换为新上传图片 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))); } }