找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2060|回复: 0
打印 上一主题 下一主题

php实现复制移动文件的方法

[复制链接]

2500

主题

2513

帖子

7520

积分

论坛元老

Rank: 8Rank: 8

积分
7520
跳转到指定楼层
楼主
发表于 2018-2-14 05:43:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            本文实例讲述了php实现复制移动文件的方法。分享给大家供大家参考。具体如下:
仿写elFinder的,抽出关键的成员方法做的一个简单示例
实现功能是:
实现多文件复制或移动操作
注:为了方便测试,对一些判断做了简单处理。并且会在程序文件所在目录下
新生成一个test文件夹作为目的文件夹。如果实际使用需要修改。
      
copy.php文件如下:
PHP5
*
*/
/**
* 判断文件是否存在
*
*/
function _isFind($filename) {
  return @file_exists($filename);
}
/**
* 判断文件夹是否存在? 简单处理: 仅对根目录进行判断
*
*/
function _isFindDir($dir) {
  $ls = scandir(dirname(__FILE__));
  foreach ($ls as $val) {
    if ($val == $dir) return TRUE;
  }
  return FALSE;
}
/**
* 复制或移动
*
* @param  array  源文件夹数组: 简单处理:采用文件名作为元素值
* @param  string 目的文件夹
* @param  string 操作数: move - 移动 ; copy - 复制
* @return bool
*/
function _copy_move($src = array(), $dst = '', $op = 'move') {
  if ( ! is_array($src)) {
    $src = array($src);
  }
  //判断源文件是否存在?
  foreach ($src as $val) {
    if ( _isFind($val) === FALSE) {
      return _log('Src file not find', $val);
    }
  }
  //判断目的文件夹是否存在? 如果不存在就生成
  //简单处理: 实际应用需要修改
  if (_isFindDir($dst) === FALSE) {
    @mkdir($dst);
  }
  //执行移动或复制操作
  foreach ($src as $val) {
    $_dst = $dst.'/'.basename($val);
    //判断目的文件是否存在? 存在不允许进行操作
    if (_isFind($_dst) === TRUE) {
      return _log('Dst file is exists', $dst);
    } else if (strpos($dst, $val) === 0) {
      return _log('Unable to copy/move into itself');
    }
    if (strtolower($op) === 'move') {      
      if ( ! rename($val, $_dst)) {
        return _log('Unable to move files', $val);
      }
    } else if (strtolower($op) === 'copy') {
      if ( ! _copy($val, $_dst)) {
        return _log('Unable to copy files', $val);
      }
    }
  }
  return 'Success!';
}
/**
* 复制操作
*
*/
function _copy($src, $dst) {
  if ( ! is_dir($src)) {
    if ( ! copy($src, $dst)) {
      return _log('Unable to copy files', $src);
    }
  } else {
    mkdir($dst);
    $ls = scandir($src);
    for ($i = 0; $i
希望本文所述对大家的php程序设计有所帮助。
            
            
您可能感兴趣的文章:
  • php删除与复制文件夹及其文件夹下所有文件的实现代码
  • php不使用copy()函数复制文件的方法
  • php写入、删除与复制文件的方法
  • PHP实现递归复制整个文件夹的类实例
  • PHP创建/删除/复制文件夹、文件
  • php简单复制文件的方法
  • PHP文件及文件夹操作之创建、删除、移动、复制
  • PHP中的浅复制与深复制的实例详解
            
  • 分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    用户反馈
    客户端