2016-11-14 1 views
0

Ich möchte eine Datei von one directory zu another directory mit PHP rename() Funktion verschieben. Aber die Funktion funktioniert nicht. Jedes Mal, wenn es angezeigt wird Not done. Ihre Vorschläge bitte.PHP Umbenennungsfunktion funktioniert nicht

Hier ist mein Code

<?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

sollten Sie lokalen Pfad verwenden. –

+0

lokaler Pfad bedeutet .. ??? Sprichst du über absoluten Pfad .. ?? '/var/www/website.com/public_html/' –

+0

lokaler Pfad bedeutet den Pfad Ihres Projektordners. nicht online Site Name –

Antwort

0

Vielleicht den vollständigen lokalen Pfad könnte

$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'; 

Ist die Quelldatei sind im angegebenen Ort der Trick?

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

immer noch nicht funktioniert –

+0

ja, es gibt, Ich kann das Bild aus dem Browser –

0

Sie benötigen eine wirklichen Weg zu bekommen, für mich wirklichen Weg /Applications/MAMP/htdocs/phptest aber man kann ABSPATH wie define('ABSPATH', dirname(__FILE__).'/');

kompletter Code definieren:

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'; 

I getestet und es funktionierte für mich. In

+0

ufff immer noch nicht arbeiten ... Ich weiß nicht, was los ist –

+0

Ich aktualisierte den Code, sollte es auf Live-Website ohne Probleme –

+0

@ShanBiswas, haben Sie versuchen, meine aktualisierte Code? –

0

/ vor TempImages/ und ImagesNew/ Verzeichnis wie /TempImages/ und /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'; 
?> 

mehr Details rename Funktion http://php.net/manual/en/function.rename.php

+0

funktioniert nicht :-( –

+0

@ShanBiswas Haben Sie 'dirname (__ FILE __)' wie '$ currentPath = ABSPATH versucht. '/ TempImages /'.$ file_name;' –

+0

Alle 3 Antworten sind korrekt unter Ihrer Frage. Ich denke, Ihr Problem ist ein anderer Ort. –