文档章节

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

l
 ljaaple
发布于 2017/09/12 15:42
字数 366
阅读 4
收藏 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
杭州
程序员
私信 提问
android监听文件创建,删除等的实现

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

Stack_overflow
2017/11/23
0
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
Mac使用Apache

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

_子墨
2016/02/21
73
0
四个常用的Linux文件基本操作管理命令详情

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

leejj_520的博客
2017/12/18
0
0
PHP文件管理器--LyFM

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

loveyu
2013/03/15
7.7K
0

没有更多内容

加载失败,请刷新页面

加载更多

oh-my-zsh 自定义

GitHub 地址 基于 oh-my-zsh 的自定义配置,增加了一些个人常用插件与皮肤。 采用的是 git submodule 来维护,包括 oh-my-zsh,之所以这么搞,主要是手头有多台 linux 需要维护, 每台机器、...

郁也风
今天
4
0
Docker安装踩坑:E_FAIL 0x80004005的解决

参考 菜鸟教程--Windows Docker 安装 http://www.runoob.com/docker/windows-docker-install.html 官方文档-Install Docker Toolbox on Windows https://docs.docker.com/toolbox/toolbox_in......

karma123
今天
5
0
js垃圾回收机制和引起内存泄漏的操作

JS的垃圾回收机制了解吗? Js具有自动垃圾回收机制。垃圾收集器会按照固定的时间间隔周期性的执行。 JS中最常见的垃圾回收方式是标记清除。 工作原理:是当变量进入环境时,将这个变量标记为“...

Jack088
昨天
17
0
大数据教程(10.1)倒排索引建立

前面博主介绍了sql中join功能的大数据实现,本节将继续为小伙伴们分享倒排索引的建立。 一、需求 在很多项目中,我们需要对我们的文档建立索引(如:论坛帖子);我们需要记录某个词在各个文...

em_aaron
昨天
27
0
"errcode": 41001, "errmsg": "access_token missing hint: [w.ILza05728877!]"

Postman获取微信小程序码的时候报错, errcode: 41001, errmsg: access_token missing hint 查看小程序开发api指南,原来access_token是直接当作parameter的(写在url之后),scene参数一定要...

两广总督bogang
昨天
33
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部