文档章节

php-本机服务器移动文件或者递归移动文件夹

l
 ljaaple
发布于 2017/09/12 15:42
字数 366
阅读 3
收藏 0

使用场景: 同一台内部服务 两个项目; 数据库以及文件需要通过接口形式传递,附件需要搬迁本项目下的指定目录,重新处理附件路径

用php移动文件或者移动文件夹,可以用php的自带函数:rename函数。 下面写了个函数实现rename函数的功能。

public function index()
      {
        //使用
        $src = "E:/***********/upload/2017/09/12";  
        $dst = "E:/**************/upload/2017/09/13";  
 
        if($this->movefolder_copy($src, $dst)){  
            echo "Success";  
        } else{
            echo "Error";
        }
 
      }
 
    /** 
       * 递归移动源目录(包括文件和子文件)到目的目录【或移动源文件到新文件】 
 
       * @param [string] $source 源目录或源文件 
 
        * @param [string] $target 目的目录或目的文件 
 
        * @return boolean true 
 
      */ 
 
 
 
     public function movefolder_copy($source, $target){  
 
        if(!file_exists($source))return false; //如果源目录/文件不存在返回false  
 
        //如果要移动文件  
        if(filetype($source) == 'file'){  
            $basedir = dirname($target);  
            if(!is_dir($basedir))mkdir($basedir); //目标目录不存在时给它创建目录  
            copy($source, $target);  
            //unlink($source);  
 
        }else{ //如果要移动目录  
 
            if(!file_exists($target))mkdir($target); //目标目录不存在时就创建  
 
            $files = array(); //存放文件  
            $dirs = array(); //存放目录  
            $fh = opendir($source);  
 
            if($fh != false){  
                while($row = readdir($fh)){  
                    $src_file = $source . '/' . $row; //每个源文件  
                    if($row != '.' && $row != '..'){  
                        if(!is_dir($src_file)){  
                            $files[] = $row;  
                        }else{  
                            $dirs[] = $row;  
                        }  
                    }  
                }  
                closedir($fh);  
            }  
 
            foreach($files as $v){  
                 copy($source . '/' . $v, $target . '/' . $v);  
                 //unlink($source . '/' . $v); //删除原位置附件 
            }  
 
           if(count($dirs)){  
                foreach($dirs as $v){  
                    $this->movefolder_copy($source . '/' . $v, $target . '/' . $v);  
                }  
            }  
        }  
        return true;  
    }

来源:http://blog.csdn.net/misakaqunianxiatian/article/details/49623901

本文转载自:http://blog.csdn.net/misakaqunianxiatian/article/details/49623901

共有 人打赏支持
l
粉丝 0
博文 9
码字总数 2992
作品 0
杭州
程序员
Mac使用Apache

配置Apache服务器,目的:有一个自己专属的测试环境 安装Apache (MAC 10.10) 一、目的: 1.能够有一个测试的服务器,不是所有的特殊网络服务都能找到免费的! 二、为什么是 "Apache" 1.使用...

_子墨
2016/02/21
73
0
yii2.0中隐藏或移除Basic/Web(不修改Apache配置httpd.conf)

译自http://fellowtuts.com/yii/hide-or-remove-basicweb-from-url-in-yii-2-0/ yii是一个非常好的框架,它会自动的做许多事情。我们知道,默认的yii安装会使网站通过类似这样的URL“http://...

木木在路上
2015/05/12
0
0
PHP文件管理器--LyFM

LyFM 是一个基于PHP的个人网站文件管理器,采用完全Ajax操作,实现高效的在线文件管理。 功能说明 无刷新访问页面,多操作同时进行 文件管理基础操作,重命名、删除、移动、复制、文件夹创建...

loveyu
2013/03/15
7.7K
0
android监听文件创建,删除等的实现

Type Fnction abstract void onEvent(int event, String path )) void startWatching() void stopWatching() 监听实现所需要的类 他是基于linux内核的inotify机制,能实现对单个文件或者文件...

Stack_overflow
2017/11/23
0
0
四个常用的Linux文件基本操作管理命令详情

1、复制文件、目录 使用cp命令复制文件或目录: cp源文件(文件夹) 目标文件(文件夹) 常用参数: -r 递归复制整个目录树 -v 显示详细信息 2、移动、重命名文件或目录 通过mv命令移动或者重...

leejj_520的博客
2017/12/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Confluence 6 使用 Fail2Ban 来限制登录尝试

什么是 Fail2Ban? 我们需要在我们网站中防止密码的暴利破解。Fail2Ban 是一个 Python 的应用来查看日志文件,使用的是正则表达式,同时还可以与Shorewall (或者 iptables)直接工作来来启用...

honeymose
5分钟前
0
0
日期和时间API - 读《Java 8实战》

日期与时间 LocalDate 创建一个LocalDate对象并读取其值 // 根据年月日创建日期LocalDate date1 = LocalDate.of(2014, 3, 18);// 读取System.out.println(date1.getYear()); // 2014Sys...

yysue
6分钟前
0
0
8月15日任务

8月15日任务 Memcached命令行 • telnet 127.0.0.1 11211 • set key2 0 30 2 ab STORED get key2 VALUE key2 0 2 ab END 实例: [root@localhost 02]# telnet 127.0.0.1 11211-bash: te......

寰宇01
18分钟前
0
0
LNMP架构(Nginx访问日志、Nginx日志切割、静态文件不记录日志和过期时间)

Nginx访问日志 1.打开配置文件,搜索log_format vim /usr/local/nginx/conf/nginx.conf 2.访问日志常用变量含义 $remote_addr : 客户端IP(公网IP) $http_x_forwarded_for : 代理服务器的IP ...

蛋黄_Yolks
18分钟前
0
0
lombok 不用再写pojo的getset

java实体类不写get/set方法 1、下载地址https://projectlombok.org/download Myeclipse、eclipse安装lombok Lombok是一种Java实用工具,可以帮助开发人员消除Java的冗长,具体看lombok的官网...

木之下
25分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部