【发布时间】:2011-03-20 21:03:52
【问题描述】:
想通 PHP 的重命名将是我最好的选择。不过,我没有看到很多关于如何在其中使用相对 URL 的示例,所以我有点妥协了。不管怎样,这给了我权限被拒绝:
我想这样做:
$file = "../data.csv";
rename("$file", "../history/newname.csv");
Where ../ 当然会回到运行脚本的 1 个目录。我想不出办法……所以我这样做了:
$file = "data.csv";
$path = dirname(realpath("../".$file));
rename("$path/$file", "$path/history/newname.csv");
但是我得到 permission denied(是的,历史文件夹归 www-data 所有,是的 data.csv 归 www-data 所有)。我觉得这很奇怪,所以我尝试了一个简单的测试:
rename( 'tempfile.txt', 'tempfile2.txt' );
我确保 www-data 可以完全控制 tempfile.txt...仍然被拒绝许可。为什么?您重命名的文件是否必须存在?你不能像linux的mv一样重命名吗?所以我只是复制()和取消链接()?
【问题讨论】:
标签: php permissions copy rename