2

私の Web アプリケーションは、XAMPP/htdocs/projectname/ のディレクトリに格納されています。そして、上記のディレクトリに images(source) & img(destination) フォルダーがあります。次のコード行を書いて、あるフォルダーから別のフォルダーにイメージをコピーします。しかし、次の警告が表示されます: (警告: copy(Resource id #3/image1.jpg): failed to open stream: No such file or directory in C:\xampp\htdocs) およびイメージはコピー先にコピーされません。

<?php
        $src = opendir('../images/');
    $dest = opendir('../img/');
    while($readFile = readdir($src)){
            if($readFile != '.' && $readFile != '..'){
                 if(!file_exists($readFile)){
                if(copy($src.$readFile, $dest.$readFile)){
                echo "Copy file";
            }else{
                    echo "Canot Copy file";
                }
                   }
            }
        }
?>
4

4 に答える 4

1

コードのこの行を置き換えてください。これは間違いなく機能します。

if(copy("../images/".$readFile, "../img/".$readFile))
于 2013-01-01T08:21:41.533 に答える
1

$src = opendir(...)推測にすぎませんが(申し訳ありません)、それを使用できるとは思いません$src.$readFile。これを試してください:

$srcPath = '../images/';
$destPath = '../img/';  

$srcDir = opendir($srcPath);
while($readFile = readdir($srcDir))
{
    if($readFile != '.' && $readFile != '..')
    {
        /* this check doesn't really make sense to me,
           you might want !file_exists($destPath . $readFile) */
        if (!file_exists($readFile)) 
        {
            if(copy($srcPath . $readFile, $destPath . $readFile))
            {
                echo "Copy file";
            }
            else
            {
                echo "Canot Copy file";
            }
        }
    }
}

closedir($srcDir); // good idea to always close your handles
于 2013-01-01T08:05:14.277 に答える
0

あなたは間違ったパスを与えています、あなたのファイルのパスがscript.phpが "XAMPP / htdocs / projectname / script.php"であり、画像とimgが両方とも "projectname"フォルダーにある場合、$srcPathと$destPathに次の値を使用する必要があります、値をに変更します

$srcPath = 'images/';
$destPath = 'img/';
于 2013-01-01T08:19:48.703 に答える
0
public function getImage()
  {

    $Path='image/'; //complete image directory path
    $destPath = '/edit_image/';
    // makes new folder, if not exists.
    if(!file_exists($destPath) || file_exists($destPath)) 
    {
        rmdir($destPath);
        mkdir($destPath, 0777);
    }

    $imageName='abc.jpg';
    $Path=$Path.$imageName;
    $dest=$destPath.$imageName;
    if(copy($Path, $dest));
  }
于 2016-08-10T13:20:37.887 に答える