zoukankan      html  css  js  c++  java
  • 大头照上传预览,并操作数据库和删除文件夹中存储的之前的图片;$_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
  • 相关阅读:
    nginx 限流配置
    redis-sentinel 高可用方案实践
    redis之 主从复制和哨兵
    MySQL架构与业务总结图
    MGR实现分析
    通过 SCQA 的框架来讲故事
    MECE分析法
    如何提高问题的认知高度
    Mac 应用程序不能打开解决方法
    vscode打开文件在同一个tab的问题
  • 原文地址:https://www.cnblogs.com/cuizhenyu/p/8504970.html
Copyright © 2011-2022 走看看