废话不多说了,直接给大家贴代码了,具体代码如下所示:
<?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小时内与您取得联系。