2016-11-14 144 views
0

我想使用PHP rename()函數將文件從one directory移動到another directory。但該功能不起作用。每次顯示Not done。你的建議請。PHP重命名功能不起作用

這裏是我的代碼

<?php 
    error_reporting(1); 
    error_reporting('On'); 

    include 'includes/config.php'; // database configuration file 

    $site_path = "http://www.website.com/"; 

    $file_name = "images800466507.jpg"; 
    $currentPath = 'TempImages/'.$file_name; // (file permission : 777) 
    $newPath = 'ImagesNew/'.$file_name;  // (file permission : 755) 

    if(rename($site_path.$currentPath , $site_path.$newPath)) 
     echo 'done'; 
    else 
     echo 'not done'; 
?> 
+0

您應該使用本地路徑。 –

+0

本地路徑意味着..你在說絕對路徑嗎? '/var/www/website.com/public_html/' –

+0

本地路徑表示您的項目文件夾路徑。不在線網站名稱 –

回答

0

也許使用完整的本地路徑是否與源文件存在於指定的位置可能做的伎倆

$filename = 'images800466507.jpg'; 

$currentpath = $_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'TempImages' . DIRECTORY_SEPARATOR . $filename; 
$targetpath = $_SERVER['DOCUMENT_ROOT'] . DIRECTORY_SEPARATOR . 'ImagesNew' . DIRECTORY_SEPARATOR . $filename; 

echo realpath($currentpath) && rename($currentpath,$targetpath) ? 'done' : 'not done'; 

if(!file_exists($currentpath)) echo 'Bad Foo - ' . $currentpath . ' not found!'; 
+0

仍然沒有工作 –

+0

是的,它的存在,我可以從瀏覽器查看圖片 –

0

你需要讓你的真實路徑,對我來說真正的路徑/Applications/MAMP/htdocs/phptest,但你可以定義ABSPATHdefine('ABSPATH', dirname(__FILE__).'/');

完整代碼:

error_reporting(1); 
error_reporting('On'); 

define('ABSPATH', dirname(__FILE__).'/'); 

include 'includes/config.php'; // database configuration file 

$file_name = "images800466507.jpg"; 
$currentPath = ABSPATH.'/TempImages/'.$file_name; // (file permission : 777) 
$newPath = ABSPATH.'/ImagesNew/'.$file_name;  // (file permission : 755) 
if(rename($currentPath ,$newPath)) 
    echo 'done'; 
else 
    echo 'not done'; 

我測試,它爲我工作。

+0

ufff仍然無法正常工作...我不知道發生了什麼 –

+0

我更新了代碼,它應該可以在沒有任何問題的現場工作 –

+0

@ShanBiswas,您是否嘗試更新過的代碼? –

0

添加/之前TempImages/ImagesNew/目錄像/TempImages//ImagesNew/

<?php 
    error_reporting(1); 
    error_reporting('On'); 

    include 'includes/config.php'; // database configuration file 

    //$site_path = "http://www.website.com/"; 

    $file_name = "images800466507.jpg"; 
    $currentPath = '/TempImages/'.$file_name; // (file permission : 777) 
    $newPath = '/ImagesNew/'.$file_name;  // (file permission : 755) 

    if(rename($currentPath , $newPath)) 
     echo 'done'; 
    else 
     echo 'not done'; 
?> 

詳情rename功能http://php.net/manual/en/function.rename.php

+0

不工作:-( –

+0

@ShanBiswas你試過'dirname(__ FILE __)''就像'$ currentPath = ABSPATH。'/ TempImages /'。file_name;' –

+0

所有3個答案在你的問題下是正確的。另一個地方。 –