我已经为我的问题尝试了一大堆修复但没有遇到可行的解决方案...
问题很简单......
假设你有这个目录结构:
/website
/admin
/phpscript.php
/img
/folder1
/image1.png
/image2.png
我基本上要做的是: 创建一个文件夹...例如:folder2
/website
/admin
/phpscript.php
/img
/folder1
/image1.png
/image2.png
/folder2
然后将image1和image2移动到folder2
php脚本位于 admin 中,这是我设计要执行的移动操作的地方。
我试过了:
<{1}}失败了
rename('../img/folder1/image1.png', '../img/folder2/image1.png');
也失败了
当文件的路径相同时,我可以使用复制和重命名...例如:
copy('../img/folder1/image1.png', '../img/folder2/image1.png');
将image1.png重命名为image3.png(服务器上不再存在image1.png,服务器创建了image3.png)
rename('../img/folder1/image1.png', '../img/folder1/image3.png');
这使得image1.png的副本名为image3.png(image1.png和image3.png都在服务器上)
apache服务器中的文件夹的所有权限
......我注意到你可以做到:
copy('../img/folder1/image1.png', '../img/folder1/image3.png');
只要文件夹存在...由于某种原因,当在file_put_contents()之前使用mkdir()时它不喜欢移动
这基本上是我的代码:
file_get_contents('../img/folder1/image1.png')
and then do
file_put_contents('../img/folder2/image1.png')
答案 0 :(得分:0)
尝试使用以下代码段。确保您有足够的权限执行exec
命令
<?php
$cmd = 'mv "../img/folder1/image1.png" "../img/folder2/image1.png"';
exec($cmd, $output, $return_val);
if ($return_val == 0) {
echo "success";
} else {
echo "failed";
}
?>
答案 1 :(得分:0)
我找到了问题的答案......
这是我正在使用的服务器上的权限问题。
我能够转移到另一台服务器,现在我可以使用重命名功能。
现在我知道-.-
$old_folder = 'image/folder1';
$new_folder = 'image/folder2';
rename($old_folder, $new_folder);
这通常是我在网上看到的许可问题... derp!