漠岚php文件操作类,php文件操作

header('Content-type:text/html;charset=utf-8');

/**

* [checkFilename 检验文件名的合法性]

* @param  [string] $filename [文件名]

* @return [bool]           [合法返回真]

*/

function checkFilename($filename){

$pattern='/[\/,\*,<>,\?\|]/';

if(preg_match($pattern, $filename)){

return false;

}else{

return true;

}

}

#文件夹操作

/**

*遍历目录函数,只读取目录中最外层的内容

* @param string $path

* @return array

*/

function readDirectory($path){

echo $path;

$arr=array();

$handle=opendir($path);

while (($item=readdir($handle))!==false) {//运用不全等于,防止文件名为0

if($item!='.'&&$item!='..'){

$p=$path.'/'.$item;

if(is_file($p)){

$arr['file'][]=$item;

}elseif(is_dir($p)){

$arr['dir'][]=$item;

}

}

}

closedir($handle);

return $arr;

}

/**

* 得到文件夹的大小

* @param  [string] $path文件夹的路径

* @return [int] 返回文件夹的大小

*/

function getDirSize($path){

$sum=0;

$handle=opendir($path);

while (($item=readdir($handle))!==false) {

$p=$path.'/'.$item;

if($item!='.'&&$item!='..'){

if(is_file($p)){

global $sum;

$sum+=filesize($p);

}elseif(is_dir($p)){

$func=__FUNCTION__;

$func($p);

}

}

}

closedir($handle);

return $sum;

}

/**

* 创建一个文件夹

* @param  [string] 文件夹名

* @return [string]          [创建成功返回对应的提示]

*/

function createFolder($dirname){

//检测文件夹名称的合法性

if(checkFilename(basename($dirname))){

//当前目录下是否存在同名文件夹名称

if(!file_exists($dirname)){

if(mkdir($dirname,0777,true)){//0777最大文件权限,true表示可以创建子目录

$mes='文件夹创建成功';

}else{

$mes='文件夹创建失败!';

}

}else{

$mes='存在同名文件夹';

}

}else{

$mes='非法文件夹名称';

}

return $mes;

}

/**

* 重命名文件夹

* @param  [string] $oldname [原文件夹名]

* @param  [string] $newname [新文件夹名]

* @return [string]          [返回对应的信息]

*/

function renameFolder($oldname,$newname){

if(checkFilename(basename($newname))){

//检测到当前目录下是否存在同名文件夹名称

if(!file_exists($newname)){

if(rename($oldname,$newname)){

$mes='重命名成功';

}else{

$mes='重命名失败';

}

}else{

$mes='存在同名文件夹';

}

}else{

$mes='非法文件夹名称';

}

return $mes;

}

/**

* 复制文件夹

* @param  [string] $srcdir [源文件夹名]

* @param  [string] $dstdir [目标文件夹名]

* @return [string]         [返回信息描述]

*/

function copyFolder($srcdir,$dstdir){

if(!file_exists($srcdir)){

return '原文件夹不存在';

}

if(!file_exists($dstdir)){

mkdir($dstdir,0777,true);

}

$handle=opendir($srcdir);

while(($item=readdir($handle))!=false){

if($item!='.'&&$item!='..'){

$sp=$srcdir.'/'.$item;

$dp=$dstdir.'/'.$item;

if(is_file($sp)){

copy($sp,$dp);

}elseif(is_dir($sp)){

$func=__FUNCTION__;

$func($sp,$dp);

}

}

}

closedir($handle);

return '复制成功';

}

/**

* 剪切文件夹

* @param  [string] $srcdir [源文件夹]

* @param  [string] $dstdir [目标文件夹]

* @return [string]         [返回剪切文件夹信息]

*/

function cutFolder($srcdir,$dstdir){

echo basename($srcdir);

echo $dstdir.'/'.basename($srcdir);

if(!file_exists($srcdir)){

$mes='源文件夹不存在';

}elseif(file_exists($dstdir)){

if(is_dir($dstdir)){

if(rename($srcdir,$dstdir.'/'.basename($srcdir))){

$mes='剪切成功';

}else{

$mes='剪切失败';

}

}else{

$mes='目标文件夹不是一个文件夹';

}

}else{

$mes='目标文件夹不存在';

}

return $mes;

}

/**

* 删除目录

* @param  [string] $path [要删除文件的路径]

* @return [string]       [返回错误信息]

*/

function delFolder($path){

if(!($handle=opendir($path))){

return '要删除的文件不存在';

}else{

while(($item=readdir($handle))!==false){

if($item!='.'&&$item!='..'){

$p=$path.'/'.$item;

if(is_file($p)){

unlink($p);

}elseif(is_dir($p)){

$func=__FUNCTION__;

$func($p);

}

}

}

closedir($handle);

rmdir($path);

return '删除文件成功';

}

}

#文件操作

/**

* 转换字节大小

* @param  [number] $filesize [问价大小]

* @return [string]           [返回带单位的文件大小]

*/

function transByte($filesize){

$arr=array('B','KB','MB','GB','TB','EB');

$i=0;

while ($filesize>=1024) {

$filesize/=1024;

$i++;

}

return round($filesize,2).$arr[$i];

}

/**

* 创建文件

* @param  [string] $filename [要创建的文件名]

* @return [string]           [返回创建文件的信息]

*/

function createFile($filename){

if(!checkFilename($filename)){

return '文件名非法';

}elseif(file_exists($filename)){

return '文件已存在';

}elseif(!touch($filename)){//创建文件的函数

return '文件创建失败';

}

return '文件创建成功';

}

/**

* [renameFile description]

* @param  [string] $oldname [description]

* @param  [string] $newname [description]

* @return [string]          [description]

*/

function renameFile($oldname,$newname){

if(!file_exists($oldname)){

return '源文件不存在';

}elseif(checkFilename($newname)){

if(rename($oldname,$newname)){

return '重命名成功';

}else{

return '重命名文件失败';

}

}else{

return '目标文件名非法';

}

}

/**

* 删除文件

* @param  [string] $filename [要删除的文件名]

* @return [type]           [返回文件删除信息]

*/

function delFile($filename){

if(unlink($filename)){

$mes='文件删除成功';

}else{

$mes='文件删除失败';

}

return $mes;

}

/**

* 下载文件

* @param  [string] $filename [要下载的文件名]

* @return [type]           [description]

*/

function downFile($filename){

//content-disposition:attachment:内容配置:附件

header('content-disposition:attachment;filename='.basename($filename));

header('content-length:'.filesize($filename));

readfile($filename);

}

/**

*复制文件

* @param  [string] $srcfile [复制的源文件]

* @param  [string] $dstfile [目标文件]

* @return [string]          [返回对应的信息]

*/

function copyFile($srcfile,$dstfile){

if(!file_exists($srcfile)){

return '源文件不存在';

}

if(file_exists($dstfile)){

if(copy($srcfile,$dstfile.'/'.basename($srcfile))){

return '文件复制成功';

}else{

return '文件复制失败';

}

}else{

return '目标文件已存在';

}

}

/**

* 剪切文件

* @param  [string] $srcfile [源文件]

* @param  [string] $dstfile [目标文件]

* @return [string]          [返回对应的信息]

*/

function cutFile($srcfile,$dstfile){

if(!file_exists($srcfile)){

return '源文件不存在';

}

if(file_exists($dstfile)){

if(rename($srcfile,$dstfile.'/'.basename($srcfile))){

return '文件剪切成功';

}else{

return '文件剪切失败';

}

}else{

return '目标目录不存在';

}

}

/**

* 表单文件上传

* @param  [string]  $fileInfo [$_FILE中前台上传按钮对应的的一部分]

* @param  [string]  $path     [文件要保存的目录]

* @param  array   $allwoExt [允许上传的文件的后缀]

* @param  integer $maxsize  [文件的大小的最大值]

* @return [string]            [返回对应的错误信息]

*/

function uploadFile($fileInfo,$path,$allwoExt=array('gif','jpeg','jpg','png','txt'),$maxsize=10485760){

//判断错误符号

if($fileInfo['error']==UPLOAD_ERR_OK){//或为0

if(is_uploaded_file($fileInfo['tmp_name'])){

$ext=strtolower(pathInfo($fileInfo['name'],PATHINFO_EXTENSION));//获取文件后缀

$uniqid=uniqid();

$destnation=$path.'/'.pathinfo($fileInfo['name'],PATHINFO_FILENAME).'_'.$uniqid.'.'.$ext;

if(in_array($ext,$allwoExt)){

if($fileInfo['size']<=$maxsize){

if(move_uploaded_file($fileInfo['tmp_name'], $destnation)){

$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;

default:

$mes='出现未知错误';

break;

}

}

return $mes;

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值