php上传文件分类实例代码
发布时间 - 2026-01-10 23:07:16 点击率:次废话不多说了,直接给大家贴代码了,具体代码如下所示:
<?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
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
Python自动化办公教程_ExcelWordPDF批量处理案例
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
如何快速启动建站代理加盟业务?
Zeus浏览器网页版官网入口 宙斯浏览器官网在线通道
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
大连网站制作公司哪家好一点,大连买房网站哪个好?
QQ浏览器网页版登录入口 个人中心在线进入
Laravel如何使用Vite进行前端资源打包?(配置示例)
打造顶配客厅影院,这份100寸电视推荐名单请查收
Firefox Developer Edition开发者版本入口
Windows10如何更改计算机工作组_Win10系统属性修改Workgroup
Laravel怎么在Blade中安全地输出原始HTML内容
怎么用AI帮你设计一套个性化的手机App图标?
Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】
Android实现代码画虚线边框背景效果
Laravel如何实现全文搜索功能?(Scout和Algolia示例)
edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】
Laravel路由怎么定义_Laravel核心路由系统完全入门指南
Python企业级消息系统教程_KafkaRabbitMQ高并发应用
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
如何用wdcp快速搭建高效网站?
Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
iOS发送验证码倒计时应用
实现点击下箭头变上箭头来回切换的两种方法【推荐】
独立制作一个网站多少钱,建立网站需要花多少钱?
Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】
深圳网站制作培训,深圳哪些招聘网站比较好?
Edge浏览器如何截图和滚动截图_微软Edge网页捕获功能使用教程【技巧】
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
制作企业网站建设方案,怎样建设一个公司网站?
如何快速搭建高效WAP手机网站?
Laravel事件监听器怎么写_Laravel Event和Listener使用教程
如何在云服务器上快速搭建个人网站?
Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制
如何实现建站之星域名转发设置?
如何快速建站并高效导出源代码?
UC浏览器如何设置启动页 UC浏览器启动页设置方法
网站建设整体流程解析,建站其实很容易!
微信小程序制作网站有哪些,微信小程序需要做网站吗?
Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复
Java解压缩zip - 解压缩多个文件或文件夹实例
Laravel如何实现API资源集合?(Resource Collection教程)
再谈Python中的字符串与字符编码(推荐)
深入理解Android中的xmlns:tools属性
ChatGPT 4.0官网入口地址 ChatGPT在线体验官网
悟空浏览器如何设置小说背景色_悟空浏览器背景色设置【方法】
微信小程序 require机制详解及实例代码
Laravel怎么在Controller之外的地方验证数据

