[英]php rename (move) from one dir to another that is two levels back
我的腳本文件路徑是:
C:\\ XAMPP \\ htdocs中\\ WordPress的\\可濕性粉劑內容\\插件\\測試\\ test.php的
我需要從這條路徑運行代碼,從路徑移動圖像:
C:\\ XAMPP \\ htdocs中\\ WordPress的\\的wp-content \\上傳\\ 2017年\\ 04
至:
C:\\ XAMPP \\ htdocs中\\ WordPress的\\的wp-content \\上傳\\圖片
我的問題是,我不知道如何強制“重命名”回到路徑中的兩個目錄。
我在嘗試這樣的事情:
$srcPath = realpath(dirname(__FILE__) . '/../..' . '/uploads/2017/04/obrazek.png');
錯誤我正在獲取atm(我已經更改了我的文件夾權限,所以也許它是路徑的東西?):
Warning: rename(C:\xampp\htdocs\wordpress\wp-content\uploads\2017\04\obrazek.png,C:\xampp\htdocs\wordpress\wp-content\uploads\images): access denied
. (code: 5) in C:\xampp\htdocs\wordpress\wp-content\plugins\uploadsdir-manager\test.php on line 16
編輯重命名代碼:
$srcPath = realpath(dirname(__FILE__) . '/../..' . '/uploads/2017/04/obrazek.png');
$destPath = realpath(dirname(__FILE__) . '/../..' . '/uploads/images');
/*$srcDir = opendir($srcPath);*/
echo $srcPath ;
sleep(1);
rename($srcPath, $destPath);
看來你是在Windows機器上,所以你使用了錯誤的斜杠: /../..' . '/uploads/2017/04/obrazek.png'
/../..' . '/uploads/2017/04/obrazek.png'
你可以嘗試用反斜杠替換它們: \\..\\..\\uploads\\2017\\04\\obrazek.png'
或者您可以嘗試這樣的事情:
$path = substr($srcPath, 0, strrpos($srcPath, '\20'));
// $path now contaits: 'C:\xampp\htdocs\wordpress\wp-content\uploads';
// Then you can do:
$srcPath = $path . '\images';
關於警告錯誤:
Warning: rename(C:\xampp\htdocs\wordpress\wp-content\uploads\2017\04\obrazek.png,C:\xampp\htdocs\wordpress\wp-content\uploads\images): access denied. (code: 5) in C:\xampp\htdocs\wordpress\wp-content\plugins\uploadsdir-manager\test.php on line 16
您似乎嘗試將文件重命名為目錄,因此可能忘記將文件名附加到新路徑。
$srcPath
包含一個文件。 $destPath
包含一個目錄,但它應該包含文件名。
從它看,它看起來是錯誤的
$srcPath = realpath(dirname(__FILE__) . '/../..' . '/uploads/2017/04/obrazek.png');
它應該是
$srcPath = realpath(dirname(__FILE__) . '../..' . '/uploads/2017/04/obrazek.png');
你在開頭有一個額外的/
斜杠。
我終於花了好幾個小時..找出如何修復它,所以你去了:
$srcPath = (realpath (dirname(__FILE__) . '\..\..' . '\uploads\2017\04') . '\obrazek2.png');
$destPath = (realpath (dirname(__FILE__) . '\..\..' . '\uploads\images') . '\obrazek2.png');
rename ($srcPath , $destPath );
關鍵是添加文件名. '\\obrazek2.png'
. '\\obrazek2.png'
在dirname()之后,因為如果filename在dirname()內,並且它是重命名的目標路徑,那么它返回空... :)
不確定我是否足夠清楚,因為我的英語,但它有效,並希望它能幫助某人。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.