1

我想将一些图像从一个文件夹复制到另一个文件夹,我不想将它们全部复制。这是我的代码,但它给了我一个问题failed to open stream

$image = "a.jpg";
$srcfile='uploads/listings/my_from/'.$image;
$dstfile='uploads/listings/my_to/images/';

copy($srcfile, $dstfile);

我错过了什么?我可以做任何其他事情,以便我可以将选定的图像复制到目的地而不删除它吗?

注意:这两个文件夹都在同一个服务器和同一个项目上。我应该卷曲吗?

4

3 回答 3

1

如果您确定该文件a.jpg存在,那么这应该可以

$srcfile='uploads/listings/my_from/'.$image;
$dstfile='uploads/listings/my_to/images/'.$image;

copy($srcfile, $dstfile);

注意:必须指定目标文件名。

于 2013-04-14T09:59:32.383 回答
1

你应该检查它是否真的存在。

尝试:

$image = "a.jpg";
$srcfile='uploads/listings/my_from/'. $image;
$dstfile='uploads/listings/my_to/images/' . $image;

if(!file_exists($srcfile) {
    throw new \Exception("File does not exist!");
}

copy($srcfile, $dstfile);
于 2013-04-14T10:05:01.050 回答
1

进行一些错误检查也可能会有所帮助,但您只需将完整的图像路径添加到您的$dstfile变量中:

<?php

$image = "a.jpg";
$srcfile='uploads/listings/my_from/'.$image;
$dstfile='uploads/listings/my_to/images/'.$image;

echo 'Attempting to copy "'.$srcfile.'" to "'.$dstfile.'"<br />';

if(file_exists($srcfile)) {
    if(file_exists($dstfile)) {
        echo 'Cannot copy file, destination file already exists';
    } else {
        if(is_writable(dirname($dstfile))) {
            if(copy($srcfile,$dstfile)) {
                echo 'File successfully copied';
            } else {
                echo 'File could not be copied';
            }
        } else {
            echo 'Destination is not writable';
        }
    }
} else {
    echo 'Cannot copy file, source file doesnt exist';
}
?>
于 2013-04-14T10:07:26.907 回答