如何在php中将文件移动到另一个文件夹

3

我在"文件"文件夹中有4个csv文件,并且我想将这些带有内容的文件移动到另一个文件夹(即备份文件夹),下面是这些文件:

  1. abc.csv
  2. abc1.csv
  3. abc2.csv

$files = scandir('files');
$destination = 'backups/';
$date = date('Y-m-d');
foreach($files as $file){
    $rename_file = $file.'_'.$date;
    move_uploaded_file($rename_file, "$destination");
}


由于您没有上传任何文件,请尝试使用 rename() 函数。 - JustBaron
http://php.net/rename - shasi kanth
2个回答

7

如果您没有上传任何文件,请尝试使用 rename() 函数。

$Ignore = array(".","..","Thumbs.db");
$OriginalFileRoot = "files";
$OriginalFiles = scandir($OriginalFileRoot);
$DestinationRoot = "backups";
# Check to see if "backups" exists
if(!is_dir($DestinationRoot)){
    mkdir($DestinationRoot,0777,true);
}
$Date = date('Y-m-d');
foreach($OriginalFiles as $OriginalFile){
    if(!in_array($OriginalFile,$Ignore)){
        $FileExt = pathinfo($OriginalFileRoot."\\".$OriginalFile, PATHINFO_EXTENSION); // Get the file extension
        $Filename = basename($OriginalFile, ".".$FileExt); // Get the filename
        $DestinationFile = $DestinationRoot."\\".$Filename.'_'.$Date.".".$FileExt; // Create the destination filename 
        rename($OriginalFileRoot."\\".$OriginalFile, $DestinationFile); // rename the file            
    }
}

@JustBaron 我使用了你的代码,但是我得到了错误信息“没有此文件或目录” - Shreya
代码对我来说是可以运行的。我建议进行调试以查看哪个文件/目录不存在。我会更新我的答案来帮助您检查这个问题。 - JustBaron
我收到了错误信息 PHP Warning: rename(files/\abc.csv,backups/\abc_2017-08-11.csv) : No such file or directory,这个错误出现了3次。 - Shreya
因为你没有使用我的代码。请检查你的目录名称,即从“files /”和“backups /”中删除“/”。 - JustBaron
我将你的这一行代码更新为 rename($OriginalFileRoot.$OriginalFile, $DestinationFile); 它正常工作,但是我发现文件名是 \abc_2017-08-11.csv,就像“files/”、“backups/”一样,它也能正常工作。 - Shreya
显示剩余4条评论

3

函数move_uploaded_file适用于上传文件,而不适用于其他事情。

要在文件系统中移动文件,您应该使用rename函数:

$files = scandir('files');
$destination = 'backups/';
$date = date('Y-m-d');
foreach($files as $file){
    if (!is_file($file)) {
        continue;
    }
    $rename_file = $destination.$file.'_'.$date;
    rename($file, $rename_file);
}

我需要将这些文件移动到备份文件夹中,有什么办法吗? - Shreya
我错过了 $destination,请根据 @JustBaron 对我的回答的编辑进行更新。 - Dekel
@JustBaron源文件目录是'files/',这是正确的吗?但是当我运行此脚本时,在备份文件夹中找不到文件,也没有显示错误。 - Shreya
@Shreya,请检查我的答案。 - JustBaron

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接