php中的移动上传文件功能不起作用

php中的移动上传文件功能不起作用,php,Php,下面是我将文件移动到特定目录的一段代码 foreach($files as $dir_file) //Getting Path of XML file { echo "\nDir Files: ".$dir_file."\n"; if($dir_file != "." && $dir_file != "..") { if(strpos($dir_file

下面是我将文件移动到特定目录的一段代码

foreach($files as $dir_file)    //Getting Path of XML file
        {
            echo "\nDir Files: ".$dir_file."\n";

            if($dir_file != "." && $dir_file != "..")
            {
                if(strpos($dir_file,'.xml'))     
                {
                    echo "\nXML file found\n";
                    $xmlPath=$path."/".$dir_file;
                    // return ReadXML($xmlPath);
                }
                if(strpos($dir_file,'.JPG'))
                {
                    echo "\n FOund \n";
                    $ret=move_uploaded_file($dir_file, 'upload/'.$dir_file));
                     echo "\n retunr values: ".$ret;
                }  
            }

我检查了所有的许可证,号码是777。但移动上传文件功能并没有将我的文件移动到特定目录。它也没有归还任何东西。我做错了什么?

如果要将文件从一个目录移动到另一个目录,应该使用函数

以下是示例代码:

$source = "YOUR_SOURCE_DIRECTORY/";
$destination = "YOUR_DESTINATION_DIRECTORY/";

foreach ($files as $file) {
    if (in_array($file, array(".","..")))
        continue;

    //If file is copied successfully then mark it for deletion
    if (copy($source.$file, $destination.$file)) {
        $delete[] = $source.$file;
    }
}
//If you want to delete the copied files then include these lines
//Delete all successfully copied files
foreach($delete as $file) {
    unlink($file);
}

此函数检查以确保文件名指定的文件是有效的上载文件(意味着它是通过PHP的HTTP POST上载机制上载的)。如果文件是有效的,它将被移动到目标指定的文件名

(我的重点)您可以使用
move\u uploaded\u file
仅移动已上载的文件,其中“uploaded”表示“PHP已收到当前请求中的文件,并且该文件当前位于
$\u files
超级全局文件中”。任何其他文件都不能通过
move\u-uploaded\u-file
移动。这完全是故意的,
move_uploaded_file
应该保护您免受自己的伤害,并确保您只移动用户上传的文件


如果要移动任何其他文件,而不是通过HTTP POST上传的文件,请使用
copy
rename

可以显示$files的外观吗?首先,打开错误报告:如果仍然无法从错误消息中识别问题,然后在此处发布错误消息。这些文件是否总是刚刚上载的(即,在同一脚本中)?如果它们只是文件系统上的文件,您可能希望
重命名(…)
而不是
移动上传的文件(…)
(),它们只是图像文件,我正在通过SSH终端运行它。您是否尝试使用xml filepath上传文件?