1

一部の画像をあるフォルダから別のフォルダにコピーしたいのですが、すべてをコピーしたくはありません。これが私のコードですが、問題が発生しますfailed to open stream

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

copy($srcfile, $dstfile);

私は何が欠けていますか?選択した画像を削除せずにコピー先にコピーできるようにするには、他に何かできることはありますか?

注: これらのフォルダーは両方とも同じサーバーと同じプロジェクトにあります。curlでやればいいの?

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 に答える