文档章节

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

l
 ljaaple
发布于 2017/09/12 15:42
字数 366
阅读 3
收藏 0
点赞 0
评论 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

© 著作权归作者所有

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

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

_子墨 ⋅ 2016/02/21 ⋅ 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

hadoop的常用命令指南

1.start-all.sh开启线程 hadoop fs -ls hdfs://cloud4:9000/user (cloud4表示主机名 9000代表端口号 /就代表根目录 /user就是user文件夹) hadoop fs -ls /user(hdfs://cloud4:9000可省略) ...

片刻 ⋅ 2014/05/23 ⋅ 0

PHP文件管理器--LyFM

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

loveyu ⋅ 2013/03/15 ⋅ 0

android监听文件创建,删除等的实现

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

Stack_overflow ⋅ 2017/11/23 ⋅ 0

四个常用的Linux文件基本操作管理命令详情

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

leejj_520的博客 ⋅ 2017/12/18 ⋅ 0

初学linux者,最常用的linux指令

首先 所有命令 --help 查看帮助,另外,至少知道,linux指令区分大小写的。 文件必备命令 cd fileName :最基本的打开文件的命令。cd .. 返回上层文件夹。 ls 查看当前文件夹下面所包含的的文...

崔小涣 ⋅ 2014/01/10 ⋅ 0

LINUX下PHP编译添加相应的动态扩展模块so(不需要重新编译PHP,以openssl.so为例)

网上我看到有很多相关的文章都是简述这个问题的,但毕竟因为LINUX版本众多,很多LIUNX命令或路径都有所差别,有时同样的命令却不能执行一样的操作。 这篇文章是我在实际运用当中配置成功的实...

card123 ⋅ 2015/11/24 ⋅ 0

Linux基本命令操作

1.cp复制文件或目录 cp 源文件 目标文件 复制文件夹 cp -r 源文件夹 目标文件夹 cp -rv 源文件夹 目标文件夹 显示整个文件夹复制的内容 2.mv的用法 mv 目标文件 放置文件 mv 移动文件 目标文...

十年磨一剑3344 ⋅ 02/07 ⋅ 0

Webshare安装说明文件(中文翻译)

按:觉得东西不错,就翻译了,0.6的,现在是0.8a,还没新的英文文档,法语看不懂。不知道为什么被墙了,访问主页得翻 这个文档与0.6版本保持一致,作为一个临时的基础文件提供,并随着升级进...

袁国涛 ⋅ 2011/07/10 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring Boot整合模板引擎thymeleaf

项目结构 引入依赖pom.xml <!-- 引入 thymeleaf 模板依赖 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId......

yysue ⋅ 12分钟前 ⋅ 0

ConstraintLayout使用解析

AndroidStudio3.0创建Project默认的布局就是ConstraintLayout。 AndroidStudio3.0前的可以自己修改,使用ConstraintLayout。 为了要使用ConstraintLayout,我们需要在app/build.gradle文件中...

_OUTMAN_ ⋅ 24分钟前 ⋅ 0

OSChina 周三乱弹 —— 这样的女人私生活太混乱了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 胖达panda :你经历过体验到人生的大起大落吗?我一朋友在10秒内体验了,哈哈。@小小编辑 请点一首《almost lover》送给他。 《almost love...

小小编辑 ⋅ 58分钟前 ⋅ 9

自己动手写一个单链表

文章有不当之处,欢迎指正,如果喜欢微信阅读,你也可以关注我的微信公众号:好好学java,获取优质学习资源。 一、概述 单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对...

公众号_好好学java ⋅ 今天 ⋅ 0

Centos7重置Mysql 8.0.1 root 密码

问题产生背景: 安装完 最新版的 mysql8.0.1后忘记了密码,向重置root密码;找了网上好多资料都不尽相同,根据自己的问题总结如下: 第一步:修改配置文件免密码登录mysql vim /etc/my.cnf 1...

豆花饭烧土豆 ⋅ 今天 ⋅ 0

熊掌号收录比例对于网站原创数据排名的影响[图]

从去年下半年开始,我在写博客了,因为我觉得业余写写博客也还是很不错的,但是从2017年下半年开始,百度已经推出了原创保护功能和熊掌号平台,为此,我也提交了不少以前的老数据,而这些历史...

原创小博客 ⋅ 今天 ⋅ 0

LVM讲解、磁盘故障小案例

LVM LVM就是动态卷管理,可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态对分区进行扩缩空间大小,安全快捷方便管理。 1.新建分区,更改类型为8e 即L...

蛋黄Yolks ⋅ 今天 ⋅ 0

Hadoop Yarn调度器的选择和使用

一、引言 Yarn在Hadoop的生态系统中担任了资源管理和任务调度的角色。在讨论其构造器之前先简单了解一下Yarn的架构。 上图是Yarn的基本架构,其中ResourceManager是整个架构的核心组件,它负...

p柯西 ⋅ 今天 ⋅ 0

uWSGI + Django @ Ubuntu

创建 Django App Project 创建后, 可以看到路径下有一个wsgi.py的问题 uWSGI运行 直接命令行运行 利用如下命令, 可直接访问 uwsgi --http :8080 --wsgi-file dj/wsgi.py 配置文件 & 运行 [u...

袁祾 ⋅ 今天 ⋅ 0

JVM堆的理解

在JVM中,我们经常提到的就是堆了,堆确实很重要,其实,除了堆之外,还有几个重要的模块,看下图: 大 多数情况下,我们并不需要关心JVM的底层,但是如果了解它的话,对于我们系统调优是非常...

不羁之后 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部