1

PHP を使用renameしてファイルを別のフォルダーに移動しようとしています (また、同じ手順でファイルの名前を変更します)。ただし、rename常に を返しますfalse。一方、 と を組み合わせて使用copy​​するとunlink問題なく動作します。何が原因でしょうか?

関連するコードは次のようになります。

  if (!rename($targetpath, $backuppath)) {
    // if rename fails, try with copy and delete
    if (!copy($targetpath, $backuppath)) 
      die("9\nCould not move existing file to backup");
    touch($backuppath, filemtime($targetpath));
    if (!unlink($targetpath))
      die("9\nCould not move existing file to backup");
  }

パスは例えば

$targetpath: /path/to/plots/some.pdf
$backuppath: /path/to/plots/old/some.pdfX14068815860
4

1 に答える 1

0

エラーの内容を確認することから始めます。

print_r(error_get_last());

どのバージョンの php を使用していますか? 古いバージョンでは、renameソースと宛先の両方が同じファイルシステム上にある場合にのみ機能します。一部のシステムでrenameは、そのファイルのファイル記述子が開いている場合にも失敗します。

于 2014-08-01T08:38:10.450 に答える