博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ThinkPHP 上传文件方法
阅读量:6877 次
发布时间:2019-06-26

本文共 3768 字,大约阅读时间需要 12 分钟。

hot3.png

ThinkPHP 上传文件方法

准备工作

            在ThinkPHP的家目录中新建文件夹 Uploads

新建图片表

字段名   类型 是否为空 自增 索引 备注
id int 是  primary key 无符号的自增ID
savename varchar(255) 图片名
path varchar(255) 否   图片路径
add_time varchar(255) 图片添加的时间

参数说明

/** * 上传文件类型控制 * @param  string   $path    字符串 保存文件路径示例: /Upload/image/ * @param  integer  $id     图片ID * @param  string   $format  文件格式限制 * @param  integer  $maxSize 允许的上传文件最大值 52428800 * @param  integer  $aas   判断返回方式  1为ajax返回   2为rerurn * @return booler   返回ajax的json格式数据 */

调用      

ajax_upload($path,$id,$format,$maxSize,$$aas);

方法

function ajax_upload($path='file',$id='',$format='empty',$maxSize='52428800',$aas=1){    ini_set('max_execution_time', '0');    // 去除两边的/    $path=trim($path,'/');    // 添加Upload根目录    $path=strtolower(substr($path, 0,6))==='Uploads' ? ucfirst($path) : 'Uploads/'.$path;    // 上传文件类型控制    $ext_arr= array(        'image' => array('gif', 'jpg', 'jpeg', 'png', 'bmp'),        'photo' => array('jpg', 'jpeg', 'png'),        'flash' => array('swf', 'flv'),        'media' => array('swf', 'flv', 'mp3', 'wav', 'wma', 'wmv', 'mid', 'avi', 'mpg', 'asf', 'rm', 'rmvb'),        'file' => array('doc', 'docx', 'xls', 'xlsx', 'ppt', 'htm', 'html', 'txt', 'zip', 'rar', 'gz', 'bz2','pdf')    );    if(!empty($_FILES)){        // 上传文件配置        $config=array(            'maxSize'   =>  $maxSize,               // 上传文件最大为50M            'rootPath'  =>  './',                   // 文件上传保存的根路径            'savePath'  =>  '/'.$path.'/',         // 文件上传的保存路径(相对于根路径)            'saveName'  =>  array('uniqid',time()),     // 上传文件的保存规则,支持数组和字符串方式定义            'autoSub'   =>  false,                   // 自动使用子目录保存上传文件 默认为true            'exts'      =>    isset($ext_arr[$format])?$ext_arr[$format]:'',        );        // 实例化上传        $upload=new \Think\Upload($config);        // 调用上传方法        $info=$upload->upload();        $data=array();        if(!$info){            // 返回错误信息            $error=$upload->getError();            $data['error_info']=$error;            if($aas == 1){                echo json_encode($data);            }elseif($aas == 2){                return $data;            }else{                echo json_encode($data);            }        }else{            if($id){                                // 存在ID                foreach($info as $file){                    $img=D('img')->find($id);  //查询出存在的图片信息                    unlink('.'.$img['path'].$img['savename']);   //删除图片                                   $image['savename']=$file['savename'];                    $image['path']=$file['savepath'];                    D('img')->where(array('id'=>$id))->save($image);                    $data['name']=trim($file['savepath'].$file['savename'],'.');                    $data['ImagesId']=$id;                    if($aas == 1){                        echo json_encode($data);                    }elseif($aas == 2){                        return $data;                    }else{                        echo json_encode($data);                    }                }            }else{                // 没有ID                foreach($info as $file){                    $image['savename']=$file['savename'];                    $image['path']=$file['savepath'];                    $image['add_time']=time();                    $image_id=D('img')->add($image);                    $data['name']=trim($file['savepath'].$file['savename'],'.');                    $data['ImagesId']=$image_id;                    if($aas == 1){                        echo json_encode($data);                    }elseif($aas == 2){                        return $data;                    }else{                        echo json_encode($data);                    }                }            }        }    }}

 

转载于:https://my.oschina.net/hcfblog/blog/1619752

你可能感兴趣的文章
go thrift oprot.Flush() not enough arguments in
查看>>
使用 Tomcat 7 新的连接池 —— Tomcat jdbc pool
查看>>
Spring MVC 介绍
查看>>
博客用途声明---重要
查看>>
linux .la .lo文件以及libtool介绍
查看>>
写python如何组织代码
查看>>
我的友情链接
查看>>
visual studio在浏览器中查看与运行的区别
查看>>
读书清单(2018书单)
查看>>
我的友情链接
查看>>
HTML滚动文字代码
查看>>
c#之旅--第二天
查看>>
vim复制粘贴大全
查看>>
几个Office使用中的小问题解决方法汇总
查看>>
常见硬盘加密解密的4种方法解析
查看>>
(10)MATLAB 模式识别
查看>>
OpenSSH配置文件详解
查看>>
IE浏览器中 $.ajax返回uindefined 其他浏览器正常
查看>>
docker+dockerfly管理端
查看>>
ELK安装
查看>>