全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

php上传文件分类实例代码

废话不多说了,直接给大家贴代码了,具体代码如下所示:

<?php
/**
* 文件上传类
* @author lijiamin
* @time 2017-02-17
* @email 1195989301@qq.com
*/
class Upload{
private $allowExt = array('gif','jpg','jpeg','bmp','png','swf');//限制文件上传的后缀名
private $maxSize = 1;//限制最大文件上传1M
/**
* 获取文件的信息
* @param str $flag 上传文件的标识
* @return arr 上传文件的信息数组
*/
public function getInfo($flag){
return $_FILES[$flag];
}
/**
* 获取文件的后缀
* @param str $filename 文件名
* @return str 文件扩展名
*/
public function getExt($filename){
return pathinfo($filename,PATHINFO_EXTENSION);
}
/**
* 检测上传文件是否合法
* @param str $filename 文件名
* @return bool 文件扩展名是否合法
*/
private function checkExt($filename){
$ext = $this->getExt($filename);
return in_array($ext,$this->allowExt);
}
/**
* 检测文件大小是否超过限制
* @param int size 文件大小
* @return bool 文件大小是否超过限制
*/
public function checkSize($size){
return $size < $this->maxSize * 1024 * 1024;
}
/**
* 随机的文件名
* @param int $len 随机文件名的长度
* @return str 随机字符串
*/
public function randName($len=6){
return substr(str_shuffle('abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ234565789'),0,$len);
}
/**
* 创建文件上传到的路径
* @return str 文件上传的路径
*/ 
public function createDir(){
//上传文件路径
$dir = './upload/'.date('Y/m/d',time());
//判断文件夹是否存在,不存在则新建
if(is_dir($dir) || mkdir($dir,0777,true)){
return $dir;
}
}
/**
* 文件上传
* @param str $flag 文件上传标识
* @return array 返回上传文件名、保存路径
*/
public function uploadFile($flag){
if($_FILES[$flag]['name'] === '' || $_FILES[$flag]['error'] !== 0){
echo "没有上传文件";
return;
}
$info = $this->getInfo($flag);
if(!$this->checkExt($info['name'])){
echo "不支持的文件类型";
return;
}
if(!$this->checkSize($info['size'])){
echo "文件大小超过限制";
return;
}
$filename = $this->randName().'.'.$this->getExt($info['name']);
$dir = $this->createDir();
if(!move_uploaded_file($info['tmp_name'], $dir.'/'.$filename)){
echo "文件上传失败";
}else{
return array('filename'=>$filename,'dir'=>$dir);
}
}
}
?>


# php  # 上传文件  # PHP+Ajax异步带进度条上传文件实例  # PHP用FTP类上传文件视频等的简单实现方法  # thinkphp表单上传文件并将文件路径保存到数据库中  # linux下php上传文件注意事项  # php结合web uploader插件实现分片上传文件  # PHP结合jQuery插件ajaxFileUpload实现异步上传文件实例  # PHP整合七牛实现上传文件  # php实现通过ftp上传文件  # 文件上传  # 是否合法  # 文件扩展名  # 说了  # 不多  # 给大家  # 不存在  # 不支持  # 所示  # 是否存在  # 上传  # jpg  # jpeg  # return  # private  # allowExt  # array  # gif  # str 


相关文章: 如何在Golang中指定模块版本_使用go.mod控制版本号  如何快速搭建响应式可视化网站?  如何在服务器上配置二级域名建站?  建站之星如何配置系统实现高效建站?  定制建站方案优化指南:企业官网开发与建站费用解析  高端建站如何打造兼具美学与转化的品牌官网?  建站之星展会模板:智能建站与自助搭建高效解决方案  制作国外网站的软件,国外有哪些比较优质的网站推荐?  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  在线教育网站制作平台,山西立德教育官网?  如何通过虚拟机搭建网站?详细步骤解析    如何用虚拟主机快速搭建网站?详细步骤解析  建站之星北京办公室:智能建站系统与小程序生成方案解析  成都响应式网站开发,dw怎么把手机适应页面变成网页?  Android自定义listview布局实现上拉加载下拉刷新功能  如何在宝塔面板创建新站点?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  全景视频制作网站有哪些,全景图怎么做成网页?  如何在Golang中引入测试模块_Golang测试包导入与使用实践  桂林网站制作公司有哪些,桂林马拉松怎么报名?  天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?  外贸公司网站制作,外贸网站建设一般有哪些步骤?  上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?  如何生成腾讯云建站专用兑换码?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  长沙企业网站制作哪家好,长沙水业集团官方网站?  常州自助建站工具推荐:低成本搭建与模板选择技巧  重庆市网站制作公司,重庆招聘网站哪个好?  整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?  天津个人网站制作公司,天津网约车驾驶员从业资格证官网?  Android自定义控件实现温度旋转按钮效果  建站OpenVZ教程与优化策略:配置指南与性能提升  微课制作网站有哪些,微课网怎么进?  实例解析angularjs的filter过滤器  Python路径拼接规范_跨平台处理说明【指导】  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  如何在万网自助建站中设置域名及备案?  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  太平洋网站制作公司,网络用语太平洋是什么意思?  制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?  如何在Windows环境下新建FTP站点并设置权限?  如何确认建站备案号应放置的具体位置?  黑客如何通过漏洞一步步攻陷网站服务器?  教育培训网站制作流程,请问edu教育网站的域名怎么申请?  建站之星后台管理如何实现高效配置?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  导航网站建站方案与优化指南:一站式高效搭建技巧解析  湖州网站制作公司有哪些,浙江中蓝新能源公司官网?  如何在搬瓦工VPS快速搭建网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。