<?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 关于文件的一些封装好的函数相关推荐

  1. js进阶ajax函数封装(匿名函数作为参数传递)(封装函数引入文件的方式非常好用)...

    js进阶ajax函数封装(匿名函数作为参数传递)(封装函数引入文件的方式非常好用) 一.总结 2.匿名函数作为参数传递 二.js进阶ajax函数封装 ajax1.js 1 function ajax( ...

  2. H264 视频文件 帧格式 传输封装等 杂碎

    H264 视频文件 帧格式 传输封装等 杂碎 rfc3984 Standards Track [Page 2] RFC 3984 RTP Payload Format for H.264 Video ...

  3. php封装图片上传,PHP文件上传封装

    文件上传封装 include 'uploadone.php'; header("Content-type: text/html; charset=utf-8"); //封装获取文件 ...

  4. 【运维】PowerShell编程 目录文件相关方法的封装与案例详解

    PowerShell 目录文件管理 目录文件相关方法的封装与案例详解 李俊才 的 CSDN 博客:https://blog.csdn.net/qq_28550263?type=blog 邮箱 :291 ...

  5. 封装mysql数据库_快速掌握 Mysql数据库对文件操作的封装

    快速掌握 Mysql数据库对文件操作的封装 在查看Mysql对文件的操作中,它在不同的操作系统上对文件的操作,除了使用标准C运行库函数,包括open.close.seek等,在Win32下的文件和目录 ...

  6. Allegro的PCB封装包含哪些文件,指定PCB封装库路径教程

    Allegro的PCB封装包含哪些文件,指定PCB封装库路径教程 第一步:Allegro的封装包含的文件有dra文件.psm文件.pad文件.device文件(如果是第三方网表才需要). 第二步:打开 ...

  7. NSIS使用教程(安装包制作安装文件教程,如何封装打包文件) 中文版

    NSIS使用教程(安装包制作安装文件教程,如何封装打包文件) 中文版 原文:NSIS使用教程(安装包制作安装文件教程,如何封装打包文件) 中文版 nsis中文版(Nullsoft Scriptable ...

  8. 90.网络安全渗透测试—[常规漏洞挖掘与利用篇6]—[文件包含-PHP封装伪协议详解实战示例]

    我认为,无论是学习安全还是从事安全的人,多多少少都有些许的情怀和使命感!!! 文章目录 一.文件包含-PHP封装伪协议简介 1.php内置封装协议 2.data://命令执行-伪协议 3.zip:// ...

  9. swig封装 c语言函数到python库,python swig 调用C/C++接口

    转载:https://www.cnblogs.com/dda9/p/8612068.html 当你觉得python慢的时候,当你的c/c++代码难以用在python上的时候,你可能会注意这篇文章.sw ...

最新文章

  1. web前端的就业前景好不好
  2. IBM Watson将成为失败的投资?分析师眼里, IBM AI过度乐观, 夸大宣传
  3. DNS隧道之DNS2TCP实现——dns2tcpc必须带server IP才可以,此外ssh可以穿过墙的,设置代理上网...
  4. mongodb之配置
  5. Android大图片裁剪终极解决方案 原理分析
  6. Java类加载机制总结
  7. 数据结构之图的存储结构:邻接多重表
  8. Java描述设计模式(20):命令模式
  9. data为long 怎么设置vue_vue--为什么data属性必须是一个函数
  10. 安卓“新皇”来了!华为Mate 40确定10月22日发布
  11. 帆软动态分页之嵌套自定义参数据选择行数分页
  12. 解决Adobe reader闪退问题
  13. php union用法,php编程SQL语句union all的使用编程
  14. 酷的计算机名字,微信网名最酷的名字
  15. 大数据工具和数据库区别和关联
  16. curl常用参数详解及示例
  17. termux安装以及基本配置
  18. WebStorm2016.2 注册码及激活,2018.6.14亲测有效
  19. 苹果将推出自助维修计划
  20. ​华为轮值董事长胡厚崑:没有自建芯片厂计划;​苹果赔偿1亿美元给App开发者;Git.io停用|极客头条

热门文章

  1. C++难题之多态性详细解释
  2. php绘制历史曲线,thinkphp浏览历史功能实现方法
  3. linux运维必学python吗_linux运维一定要学python吗?
  4. Spring框架中bean的生命周期
  5. 012_CSS相邻兄弟选择器
  6. JAVA数据库第四章上机3_Java第二至第四章上机练习题
  7. c++语言表白超炫图形_教你用C语言加图形库打造炫酷表白连连看
  8. grep 与条件_小白贴:使用 grep 命令搜索多个字符串
  9. oracle学习的方法:
  10. 含有“外骨骼”的电影和游戏