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之外的地方验证数据