移动文件或复制文件函数

作者:Liaodeity - 2015年07月29日

在一些项目的过程中,我们需要移动文件或复制文件这些操作(例如复制图片和移动图片),在PHP自带的函数中,也可以实现该功能。

移动文件

5.3.1可以在 Windows 上跨驱动器 rename() 文件。 低于改版本可能无法移动文件。

rename — 重命名一个文件或目录。

复制文件

copy — 拷贝文件

为了防止rename移动文件的时候失败,我写了一个集合的方法,用户移动文件和复制文件操作。

函数

就是在移动文件的时候,当rename方法移动文件失败后,将用复制文件过去,再删除之前的文件,从而达到了移动文件的效果,使该移动功能适合于各种环境系统。

/**
 * [moveOrCopy 移动文件或复制文件]
 * @param  [type]  $old_path [当前文件所在路径]
 * @param  [type]  $new_path [移动或复制到的路径]
 * @param  boolean $move     [TRUE为移动]
 * @return [boolean]         [成功返回TRUE;失败返回FALSE]
 * @author [建百站www.jianbaizhan.com]
 */
function moveOrCopy($old_path,$new_path,$move=FALSE){
    $dir = dirname($new_path);
    if(!file_exists($old_path)){
        return FALSE;
    }
    if(!file_exists($dir)){
        mkdir($dir);
    }
    if($move){
        $re = rename($old_path,$new_path);
        if($re){
            return TRUE;
        }else{
            $re = copy($old_path,$new_path);
            if($re){
                $re2 = unlink($old_path);
                if($re2){
                    return TRUE;
                }    
            }
        }
    }else{
        $re = copy($old_path,$new_path);
        if($re){
            return TRUE;
        }
    }
    return FALSE;
}

使用方法

$re = moveOrCopy('im/c_02.jpg','c_02.jpg');
var_dump($re);


本文作者: Liaodeity

本文链接: https://www.jianbaizhan.com/article/246

版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!


 请勿发布不友善或者负能量的内容。审查将对发布广告等违规信息进行处罚!
Jasmine 8年前

哇塞,不错耶!!