文档章节

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
杭州
程序员
私信 提问
Mac使用Apache

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

_子墨
2016/02/21
73
0
android监听文件创建,删除等的实现

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

Stack_overflow
2017/11/23
0
0
PHP文件管理器--LyFM

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

loveyu
2013/03/15
7.7K
0
四个常用的Linux文件基本操作管理命令详情

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

leejj_520的博客
2017/12/18
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

没有更多内容

加载失败,请刷新页面

加载更多

延迟队列实现精准的订单超时取消--自我记录备份

订单的超时取消很多系统采用定时任务,实际上达不到要求。我用的是延迟队列,但缺点是只实现了基于jvm的,分布式采用的是修改之前去查询订单状态,以及分布式锁获取的方式来控制,这样获得锁...

checkboxMan
19分钟前
0
0
storm 环境搭建

1.下载解压 下载地址:http://storm.apache.org/downloads.html #下载wget https://www-us.apache.org/dist/storm/apache-storm-1.2.2/apache-storm-1.2.2.tar.gz#解压tar -zxf apache......

MrPei
33分钟前
1
0
Python Base - 读写文件,字符串拼接,单引号

字符转义 读写文件cvs 字符串拼接,替换 import csvcsv_file_name = 'cardbin.csv'# insert into `card_bin_code` (name_of, code_of, card_no_prefix, bank_code) values ('中国银行......

园领T
34分钟前
1
0
基于JQUERY BOOTSTRAP 最简单的loading遮罩层

<%--loading遮罩层--%><div class="modal fade" id="loadingModal" backdrop="static" keyboard="false">   <div style="width: 200px;height:20px; z-index: 20000; position: abs......

颖辉小居
35分钟前
1
0
springboot+kafka

1,首先springboot对kafka的支持也很好,同样是在配置文件中配置好参数,然后就可以直接使用。先说一下,很简单,,,不要怕 2,我用的依赖是 <dependency> <groupId>org.springframewor...

我真是小菜鸡
39分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部