PHP的重命名將是我最好的選擇。我沒有看到很多關於如何使用它的相對URL的例子,所以我有點妥協。無論哪種方式,這給我的權限被拒絕:移動文件並重新命名
我想這樣做:
$file = "../data.csv";
rename("$file", "../history/newname.csv");
其中當然../將回到1名的目錄從那裏劇本正在跑。我無法想出一個辦法......所以我做了這個:
$file = "data.csv";
$path = dirname(realpath("../".$file));
rename("$path/$file", "$path/history/newname.csv");
但是我得到權限被拒絕(是歷史文件夾是由www數據擁有,並且是data.csv是由www-data擁有)。我認爲這件事很奇怪,所以我嘗試了一個簡單的測試:
rename('tempfile.txt', 'tempfile2.txt');
,我確信www數據有超過tempfile.txt完全控制......仍然有許可被拒絕。爲什麼?你重命名它必須存在的文件?你可以不像linux的mv重命名嗎?所以我只是複製()和取消鏈接()?
實際上'644'會更好,因爲一個CSV文件不應該是可執行的。 – 2010-07-25 23:57:18
是的chmod是644,我甚至嘗試過777讓它工作。沒有任何工作。而apache是www-data,我知道這是因爲我移動了其他東西,並且需要它成爲www-data,再加上我查了頂部。 – ParoX 2010-07-26 00:00:19
data.csv的完整路徑爲/var/imvu/products/ht/clients/test/data.csv,其中/ var /由root擁有,imvu通過測試屬於wwwftp(一個ftp我擁有,所以我不用ftp到root)。也就像我說的那樣,它的歷史由www數據擁有。 – ParoX 2010-07-26 00:02:12