php 关于文件的一些封装好的函数
<?php //Bytes/Kb/MB/GB/TB/EB /*** 转换字节大小* @param number $size* @return number*/ function transByte($size) {$arr = array ("B", "KB", "MB", "GB", "TB", "EB" );$i = 0;while ( $size >= 1024 ) {$size /= 1024;$i ++;}return round ( $size, 2 ) . $arr [$i]; }/*** 创建文件* @param string $filename* @return string*/ function createFile($filename) {//file/1.txt//验证文件名的合法性,是否包含/,*,<>,?,|$pattern = "/[\/,\*,<>,\?\|]/";if (! preg_match ( $pattern, basename ( $filename ) )) {//检测当前目录下是否存在同名文件if (! file_exists ( $filename )) {//通过touch($filename)来创建if (touch ( $filename )) {return "文件创建成功";} else {return "文件创建失败";}} else {return "文件已存在,请重命名后创建";}} else {return "非法文件名";} }/*** 重命名文件* @param string $oldname* @param string $newname* @return string*/ function renameFile($oldname,$newname){ // echo $oldname,$newname; //验证文件名是否合法if(checkFilename($newname)){//检测当前目录下是否存在同名文件$path=dirname($oldname);if(!file_exists($path."/".$newname)){//进行重命名if(rename($oldname,$path."/".$newname)){return "重命名成功";}else{return "重命名失败";}}else{return "存在同名文件,请重新命名";}}else{return "非法文件名";}}/***检测文件名是否合法* @param string $filename* @return boolean*/ function checkFilename($filename){$pattern = "/[\/,\*,<>,\?\|]/";if (preg_match ( $pattern, $filename )) {return false;}else{return true;} }/*** 删除文件* @param string $filename* @return string*/ function delFile($filename){if(unlink($filename)){$mes="文件删除成功";}else{$mes="文件删除失败";}return $mes; }/*** 下载文件操作* @param string $filename*/ function downFile($filename){header("content-disposition:attachment;filename=".basename($filename));header("content-length:".filesize($filename));readfile($filename); }/*** 复制文件* @param string $filename* @param string $dstname* @return string*/ function copyFile($filename,$dstname){if(file_exists($dstname)){if(!file_exists($dstname."/".basename($filename))){if(copy($filename,$dstname."/".basename($filename))){$mes="文件复制成功";}else{$mes="文件复制失败";}}else{$mes="存在同名文件";}}else{$mes="目标目录不存在";}return $mes; }function cutFile($filename,$dstname){if(file_exists($dstname)){if(!file_exists($dstname."/".basename($filename))){if(rename($filename,$dstname."/".basename($filename))){$mes="文件剪切成功";}else{$mes="文件剪切失败";}}else{$mes="存在同名文件";}}else{$mes="目标目录不存在";}return $mes; }/*** 上传文件* @param array $fileInfo* @param string $path* @param array $allowExt* @param int $maxSize* @return string*/ function uploadFile($fileInfo,$path,$allowExt=array("gif","jpeg","jpg","png","txt"),$maxSize=10485760){//判断错误号if($fileInfo['error']==UPLOAD_ERR_OK){//文件是否是通过HTTP POST方式上传上来的if(is_uploaded_file($fileInfo['tmp_name'])){//上传文件的文件名,只允许上传jpeg|jpg、png、gif、txt的文件//$allowExt=array("gif","jpeg","jpg","png","txt");$ext=getExt($fileInfo['name']);$uniqid=getUniqidName();$destination=$path."/".pathinfo($fileInfo['name'],PATHINFO_FILENAME)."_".$uniqid.".".$ext;if(in_array($ext,$allowExt)){if($fileInfo['size']<=$maxSize){if(move_uploaded_file($fileInfo['tmp_name'], $destination)){$mes="文件上传成功";}else{$mes="文件移动失败";}}else{$mes="文件过大";}}else{$mes="非法文件类型";}}else{$mes="文件不是通过HTTP POST方式上传上来的";}}else{switch($fileInfo['error']){case 1:$mes="超过了配置文件的大小";break;case 2:$mes="超过了表单允许接收数据的大小";break;case 3:$mes="文件部分被上传";break;case 4:$mes="没有文件被上传";break;}}return $mes;}
转载于:https://www.cnblogs.com/binblogs/p/5179272.html
php 关于文件的一些封装好的函数相关推荐
- js进阶ajax函数封装(匿名函数作为参数传递)(封装函数引入文件的方式非常好用)...
js进阶ajax函数封装(匿名函数作为参数传递)(封装函数引入文件的方式非常好用) 一.总结 2.匿名函数作为参数传递 二.js进阶ajax函数封装 ajax1.js 1 function ajax( ...
- H264 视频文件 帧格式 传输封装等 杂碎
H264 视频文件 帧格式 传输封装等 杂碎 rfc3984 Standards Track [Page 2] RFC 3984 RTP Payload Format for H.264 Video ...
- php封装图片上传,PHP文件上传封装
文件上传封装 include 'uploadone.php'; header("Content-type: text/html; charset=utf-8"); //封装获取文件 ...
- 【运维】PowerShell编程 目录文件相关方法的封装与案例详解
PowerShell 目录文件管理 目录文件相关方法的封装与案例详解 李俊才 的 CSDN 博客:https://blog.csdn.net/qq_28550263?type=blog 邮箱 :291 ...
- 封装mysql数据库_快速掌握 Mysql数据库对文件操作的封装
快速掌握 Mysql数据库对文件操作的封装 在查看Mysql对文件的操作中,它在不同的操作系统上对文件的操作,除了使用标准C运行库函数,包括open.close.seek等,在Win32下的文件和目录 ...
- Allegro的PCB封装包含哪些文件,指定PCB封装库路径教程
Allegro的PCB封装包含哪些文件,指定PCB封装库路径教程 第一步:Allegro的封装包含的文件有dra文件.psm文件.pad文件.device文件(如果是第三方网表才需要). 第二步:打开 ...
- NSIS使用教程(安装包制作安装文件教程,如何封装打包文件) 中文版
NSIS使用教程(安装包制作安装文件教程,如何封装打包文件) 中文版 原文:NSIS使用教程(安装包制作安装文件教程,如何封装打包文件) 中文版 nsis中文版(Nullsoft Scriptable ...
- 90.网络安全渗透测试—[常规漏洞挖掘与利用篇6]—[文件包含-PHP封装伪协议详解实战示例]
我认为,无论是学习安全还是从事安全的人,多多少少都有些许的情怀和使命感!!! 文章目录 一.文件包含-PHP封装伪协议简介 1.php内置封装协议 2.data://命令执行-伪协议 3.zip:// ...
- swig封装 c语言函数到python库,python swig 调用C/C++接口
转载:https://www.cnblogs.com/dda9/p/8612068.html 当你觉得python慢的时候,当你的c/c++代码难以用在python上的时候,你可能会注意这篇文章.sw ...
最新文章
- web前端的就业前景好不好
- IBM Watson将成为失败的投资?分析师眼里, IBM AI过度乐观, 夸大宣传
- DNS隧道之DNS2TCP实现——dns2tcpc必须带server IP才可以,此外ssh可以穿过墙的,设置代理上网...
- mongodb之配置
- Android大图片裁剪终极解决方案 原理分析
- Java类加载机制总结
- 数据结构之图的存储结构:邻接多重表
- Java描述设计模式(20):命令模式
- data为long 怎么设置vue_vue--为什么data属性必须是一个函数
- 安卓“新皇”来了!华为Mate 40确定10月22日发布
- 帆软动态分页之嵌套自定义参数据选择行数分页
- 解决Adobe reader闪退问题
- php union用法,php编程SQL语句union all的使用编程
- 酷的计算机名字,微信网名最酷的名字
- 大数据工具和数据库区别和关联
- curl常用参数详解及示例
- termux安装以及基本配置
- WebStorm2016.2 注册码及激活,2018.6.14亲测有效
- 苹果将推出自助维修计划
- ​华为轮值董事长胡厚崑:没有自建芯片厂计划;​苹果赔偿1亿美元给App开发者;Git.io停用|极客头条
热门文章
- C++难题之多态性详细解释
- php绘制历史曲线,thinkphp浏览历史功能实现方法
- linux运维必学python吗_linux运维一定要学python吗?
- Spring框架中bean的生命周期
- 012_CSS相邻兄弟选择器
- JAVA数据库第四章上机3_Java第二至第四章上机练习题
- c++语言表白超炫图形_教你用C语言加图形库打造炫酷表白连连看
- grep 与条件_小白贴:使用 grep 命令搜索多个字符串
- oracle学习的方法:
- 含有“外骨骼”的电影和游戏