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