0

私は作業中の drupal バッチ プロセスを持っています。その中で、PHPのコピー機能を使用して、ソースディレクトリからターゲットディレクトリに画像ファイル(JPG)をコピーしたいと考えています。両方のディレクトリが存在します。ソースファイルも存在します。しかし、コピーは成功しません。

ソース ディレクトリ (0755) とソース ファイル (0744) とターゲット ディレクトリ (0755) のファイル アクセス許可を確認しました。所有者とグループはスクリプトのものです。

コピーの成功をウォッチドッグに入れてデバッグしました。成功したとのことです。しかし、ファイルはそこにありません。

これは、コピーが行われるコードです

$copy_from = $_SERVER["DOCUMENT_ROOT"]."/".$file->filepath;
$copy_to = $_SERVER["DOCUMENT_ROOT"]."/".$path_new;


$success = false;
if (file_exists($copy_from)) {
    $success = copy($copy_from, $copy_to);
    watchdog('catalog_copy2', ($success ? 'yes' : 'no') 
      . ' | ' . "copy('{$copy_from}', '{$copy_to}')");
}

ウォッチドッグの出力をコピーして少し編集すると、シェルのコピー順になります

cp path/to/file dest_path

ファイルはファズなしでコピーされます。したがって、タイプミスや大文字と小文字を区別する問題は発生しません。

なぜPHPでファイルをコピーできないのか理解できないので、私は明らかに頭がおかしくなっています。

奇妙なことですが、一部のファイル私のバッチでコピーされ、一部はそうではありません。

解決策を見つけるためにどこを探すべきか、ヒントをいただければ幸いです。


編集

cpphpのコマンドを使用してシェルコマンドを使用することで問題を回避しましたexec。私はこれに満足していませんが、それを機能させる必要がありました。


編集

file_field モジュールの API 関数を使用して問題を回避しました

4

1 に答える 1

0

問題は解決しませんでしたが、完全に機能する file_field モジュールの API 関数を使用することができました

于 2012-05-11T10:04:17.450 に答える