Php copy()工作不正常

Php copy()工作不正常,php,Php,我正试图用以下代码将我上传的文件复制到另一个名为img文件夹的目录中。但它不能正常工作。我不知道为什么?你能帮我吗 php代码: if($image["name"] != "") { //$path = PATH . DS . "uploads" . DS . "products" . DS . $id; $path = "../../uploads" . DS . "products" . DS . $id; $path2 = "img"; if(!is_d

我正试图用以下代码将我上传的文件复制到另一个名为img文件夹的目录中。但它不能正常工作。我不知道为什么?你能帮我吗

php代码:

if($image["name"] != "")
{
    //$path = PATH . DS . "uploads" . DS . "products" . DS . $id;
    $path = "../../uploads" . DS . "products" . DS . $id;

    $path2 = "img";

    if(!is_dir($path))
    {
        mkdir($path);
    }

    chmod($path, 0755);                 
     //move_uploaded_file($image["tmp_name"], $path . DS . $image["name"]);
    move_uploaded_file($image["tmp_name"], $path . DS . 
    $uploadImage);//exit;                       

    copy($uploadImage, $path2);
}
Warning: copy(249.jpg) [function.copy]: failed to open stream: No such file or directory in...
显示以下错误消息:

if($image["name"] != "")
{
    //$path = PATH . DS . "uploads" . DS . "products" . DS . $id;
    $path = "../../uploads" . DS . "products" . DS . $id;

    $path2 = "img";

    if(!is_dir($path))
    {
        mkdir($path);
    }

    chmod($path, 0755);                 
     //move_uploaded_file($image["tmp_name"], $path . DS . $image["name"]);
    move_uploaded_file($image["tmp_name"], $path . DS . 
    $uploadImage);//exit;                       

    copy($uploadImage, $path2);
}
Warning: copy(249.jpg) [function.copy]: failed to open stream: No such file or directory in...
copy()
函数需要源文件的完整文件路径;您只是传递文件名,而不是路径

就目前情况而言,它正在当前文件夹中查找文件,但没有找到它,因此抛出了错误

从上一行代码来看,您的完整路径应该是
$path。DS$uploadImage
,因此复制命令应如下所示:

copy($path . DS . $uploadImage, $path2);

希望对您有所帮助。

您的复制功能错误

 copy($uploadImage, $path2);
正如Spudley的回答所说,您必须使用图像的完整路径。另外,
$path2
是一个目录。您必须为图像的新副本指定一个名称

因此,您的复制功能如下所示:

 copy($path . DS . $uploadImage, $path2. DS . $uploadImage);

试试看,让我们知道。

@Fred我设置了权限chmod($path20755);获取此错误:警告:复制(img)[function.copy]:无法打开流:是一个目录inDS意味着:define(“DS”,目录分隔符)@AlexMojum-确保
$uploadImage
设置为某个值。我猜是空白的。在调用
move\u upload\u image()
之前,您需要将其设置为某个名称(无论您想给文件起什么名称)?copy()函数实际上不需要完整的文件路径,只需要一个正确的路径获取错误消息:copy(img/)[function.copy]:无法打开流:是,,,中的目录,当您回显$uploadImage时会得到什么?好的,这两个路径如何<代码>echo$path。DS$上传图像和
echo$path2。DS$上传图像
它正在工作。伟大的还有一个问题。如果我想将此图像复制到同一文件夹中,那么我现在要做什么?您将使用同一文件并使用其他名称复制它<代码>复制($path2.DS.$uploadImage,$path2.DS.$other\u name)